how to save value to mysql

Hi,

I’m using scripts from the page Server Side Highscores for my purposes. I edited it slightly but it doesn’t work. The value is not saving and I keep getting this message in php page:

Notice: Undefined index: Name in C:\xampp\htdocs\unitypb\saveVerant.php on line 6
Notice: Undefined index: Value in C:\xampp\htdocs\unitypb\saveVerant.php on line 7
Notice: Undefined index: hash in C:\xampp\htdocs\unitypb\saveVerant.php on line 8

This is the php code

<?php 
        $db = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error()); 
        mysql_select_db('unitypb') or die('Could not select database');
 
        // Strings must be escaped to prevent SQL injection attack. 
        $name = mysql_real_escape_string($_GET['Name'], $db); 
        $score = mysql_real_escape_string($_GET['Value'], $db); 
        $hash = $_GET['hash']; 
 
        $secretKey="mySecretKey"; # Change this value to match the value stored in the client javascript below 

        $real_hash = md5($name . $score . $secretKey); 
        if($real_hash == $hash) { 
            // Send variables for the MySQL database class. 
			$query = "INSERT INTO `verant` ( `ID` , `Name` , `Value` ) VALUES ('10', 'a', 'b')";
            $result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
        } 
?>

and this is the c# code:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;

public class SQL_InputVS : MonoBehaviour {

	private string secretKey = "mySecretKey"; // Edit this value and make sure it's the same as the one stored on the server
	public string addScoreURL = "http://localhost/unitypb/saveVerant.php?"; //be sure to add a ? to your url


	Text text;

	void Awake (){
		text = transform.Find ("Text").GetComponent <Text> ();
	}


	public void sendDatabase () {
		StartCoroutine (saveValue ("Verant-" + this.transform.name, text.text));
	}
		

	IEnumerator saveValue (string Name, string Value) {

		//This connects to a server side php script that will add the name and score to a MySQL DB.
		// Supply it with a string representing the players name and the players score.
		string hash = Md5Sum (Name + Value + secretKey);

		string post_url = addScoreURL + "name=" + WWW.EscapeURL(Name) + "&score=" + Value + "&hash=" + hash;

		// Post the URL to the site and create a download object to get the result.
		WWW hs_post = new WWW(post_url);
		yield return hs_post; // Wait until the download is done

		if (hs_post.error != null)
		{
			print("There was an error: " + hs_post.error);
		}

	}

	public string Md5Sum(string strToEncrypt)
	{
		System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
		byte[] bytes = ue.GetBytes(strToEncrypt);

		// encrypt bytes
		System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
		byte[] hashBytes = md5.ComputeHash(bytes);

		// Convert the encrypted bytes back to a string (base 16)
		string hashString = "";

		for (int i = 0; i < hashBytes.Length; i++)
		{
			hashString += System.Convert.ToString(hashBytes*, 16).PadLeft(2, '0');*
  •  }*
    
  •  return hashString.PadLeft(32, '0');*
    
  • }*
    }

On line 30 of your C# code, you’ve indicated that:

string post_url = addScoreURL + "name=" + WWW.EscapeURL(Name) + "&score=" + Value + "&hash=" + hash;

Which means you’re passing it three arguments: name, score, and hash.

Meanwhile, your PHP code on lines 6, 7, and 8 are looking for three arguments: Name, Value, and hash. I’m not a PHP expert, but I believe that the indices of $_GET is case-sensitive and at a minimum need to match what’s passed.