Call php script error 404
Hi.
I am running a project in Unity and I am trying to make a POST request towards my .php file in the root folder of this server. I have crossdomain.xml also in the root but for some reason I can't call the php script. It gives me 404 error message. I have given God permissions to my php file, but it just wont work.
The script itself is a simple mysql query insert script which suppose to put some data to my database.
Thanks for any support,
Here is the Unity Sript:
using UnityEngine; using System.Collections;
public class ScoreController : MonoBehaviour { private string secretKey = "secretKey"; // Edit this value and make sure it's the same as the one stored on the server public string addScoreURL = "http://keinutie.com/AddUser.php?"; //be sure to add a ? to your url //public string highscoreURL = "http://localhost/unity_test/display.php";
void Start()
{
StartCoroutine(PostScores("jaakko","pertteli","4d","NaamaKoulu"));
Debug.Log ("LEL");
//StartCoroutine(GetScores());
}
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[i], 16).PadLeft(2, '0');
}
return hashString.PadLeft(32, '0');
}
// remember to use StartCoroutine when calling this function!
IEnumerator PostScores(string firstname, string lastname, string luokka, string school)
{
//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(firstname + lastname + luokka + school + secretKey);
string post_url = addScoreURL + "etunimi=" + WWW.EscapeURL(firstname) + "&sukunimi=" + lastname + "&luokka=" + luokka + "&koulu=" + school + "&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 posting the high score: " + hs_post.error); } }
// Get the scores from the MySQL DB to display in a GUIText.
// remember to use StartCoroutine when calling this function!
/*IEnumerator GetScores()
{
gameObject.GetComponent<GUIText>().text = "Loading Scores";
WWW hs_get = new WWW(highscoreURL);
yield return hs_get;
if (hs_get.error != null)
{
print("There was an error getting the high score: " + hs_get.error);
}
else
{
gameObject.GetComponent<GUIText>().text = hs_get.text; // this is a GUIText that will display the scores in game.
}
}*/
}
And the php script: (line six is marked with stars. The problem should be there)
Answer by TooLate · Aug 06, 2016 at 05:40 PM
$db = mysql_connect(‘keinutie.com’, ‘xxx’, ‘xxx’) or die('Could not connect: ' . mysql_error()); mysql_select_db(‘newstwee_testitulokset’) or die('Could not select database'); // Strings must be escaped to prevent SQL injection attack. $etunimi = mysql_real_escape_string($_GET['etunimi'], $db); $sukunimi = mysql_real_escape_string($_GET['sukunimi'], $db); $luokka = mysql_real_escape_string($_GET['luokka'], $db); $koulu = mysql_real_escape_string($_GET['koulu'], $db); $hash = $_GET['hash']; $secretKey=“abc”; # Change this value to match the value stored in the client javascript below
$real_hash = md5($etunimi . $sukunimi . $luokka . $koulu . $secretKey);
if($real_hash == $hash) {
// Send variables for the MySQL database class.
$query = "insert into users values (NULL, '$etunimi', '$sukunimi','$luokka’, '$koulu’);”;
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
}