Progressive Dev Geschrieben 9. Juni 2016 Melden Share Geschrieben 9. Juni 2016 Ich suche jetzt bestimmt seit 2 Tagen nach irgendwelchen Tutorials oder hilfen wie ich ein PHP Post bzw Request "erstelle". Ich möchte einfach nur eine Variable aus Unity in meine PHP Datei übergeben. Es wäre sehr nett wenn jemand ein Beispiel schreiben könnte, was ich verstehen kann und daran lernen kann. Danke im vorraus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. Juni 2016 Melden Share Geschrieben 9. Juni 2016 An deinem Code von hier konnte ich kein Problem feststellen, der sah gut aus. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Elharter Geschrieben 15. Juni 2016 Melden Share Geschrieben 15. Juni 2016 Also du hast 2 Seiten.... die Unity und die PHP Seite. Auf der PHP Seite brauchst du ne DB Connection klarerweise. Es gibt mehrer Arten wie du dir die Daten holen kannst. Alle haben Vor und Nachteile. Hier eine Version mit GET (Querystrings). <?php require_once ("mysqlconnect.php"); // Strings must be escaped to prevent SQL injection attack. $userid = mysql_real_escape_string($_GET['userid'], $db); $wert1= mysql_real_escape_string($_GET['wert1'], $db); $wert2= mysql_real_escape_string($_GET['wert2'], $db); $hash = $_GET['hash']; $privateKey="1234abcdef1234"; # Change this value to match the value stored in the client javascript below $msg = ""; // Test Insert $query = "INSERT INTO werte(userid,wert1,wert2) VALUES ('".$userid."','".$wert1."','".$wert2."');"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); mysql_close($db); ?> auf der Unity Seite verwendest du die WWW Klasse. //make sure it's the same as the one in the PHP files private const string SECRET_KEY = "1234abcd1234"; private string saveroundurl = "http://www.test.com/wertespeichern.php"; //generate Hash Key for secure URL transfer string hashcode = ""; hashcode = Md5Sum(useridtoSaveLap + niceTime + SECRET_KEY); //Debug.Log(hashcode); string completeUrl = null; completeUrl = saveroundurl + "?userid=" + useridtoSaveLap + "&wert1=" + niceTime + "&wert2="+ lastlap + "&hash=" + hashcode; //Debug.Log(completeUrl); WWW www = new WWW(completeUrl); // hier eine CoRoutine einfügen Du kansnt dann auch noch eine CoRoutine verwenden um Fehler usw zu prüfen.... IEnumerator writeWerte(WWW www) { yield return www; if (www.error == null) { // kein Fehler } else { // kein Fehler Debug.Log(www.error); } ....die MD5 Hashes dienen zur Sicherheit und sollten entsprechend immer mit Werten die nur du kennst kombiniert werden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 16. Juni 2016 Autor Melden Share Geschrieben 16. Juni 2016 Danke, hat geklappt Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 16. Juni 2016 Autor Melden Share Geschrieben 16. Juni 2016 //Code Habe nun alles auf die Reihe bekommen. An der Stelle nochmal danke für die ganze Hilfe. Nun habe ich folgendes Problem: Wenn ich es in Unity Teste funktioniert alles EINWANDRFREI. Aber sobald es auf dem Handy ist, scheint es so als würde es den Server Script um über WWW auf das PHP Script zu leiten ignorieren. Aber warum ignoriert die app das? using UnityEngine; using System.Collections; public class Server : MonoBehaviour { public string[] items; public UnityEngine.UI.Text PlayerName; public UnityEngine.UI.Text CoinsAmount; int counter = 0; int index; IEnumerator Start() { while (true) { index = 0; string completeUrl = "*******.vweb12.nitrado.net/xxx.php"; completeUrl = "http://" + completeUrl + "?userid=" + PlayerName; WWW playerData = new WWW(completeUrl); yield return playerData; string playerDataString = playerData.text; print(playerDataString); items = playerDataString.Split(';'); string[] coins = new string[items.Length]; string[] names = new string[items.Length]; //print(GetDataValue(items[1], "ID:")); foreach (string item in items) { foreach (char element in item) { if (element == '|') { coins[index] = item.Remove(0, counter + 7); names[index] = item.Remove(0, 3); names[index] = names[index].Remove(counter - 3); index++; counter = 0; break; } else { counter++; } } } index = 0; foreach (var item in names) { if (item == PlayerName.text) { CoinsAmount.text = (coins[index]); } else { index++; } } } } string GetDataValue(string data, string index) { string value = data.Substring(data.IndexOf(index) + index.Length); if (value.Contains("|")) value = value.Remove(value.IndexOf("|")); return value; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Elharter Geschrieben 16. Juni 2016 Melden Share Geschrieben 16. Juni 2016 wann und wo rufst du die CoRoutine "Start" auf? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 16. Juni 2016 Melden Share Geschrieben 16. Juni 2016 Start wird von Unity aufgerufen. Gibt start einen IEnumerator zurück, wird start automatisch als Coroutine ausgeführt. Funktioniert bei fast allen Unity-Events. Ausgenommen sind zyklische Events, wie Update und FixedUpdate. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 17. Juni 2016 Autor Melden Share Geschrieben 17. Juni 2016 wann und wo rufst du die CoRoutine "Start" auf? Start wird von Unity aufgerufen. Gibt start einen IEnumerator zurück, wird start automatisch als Coroutine ausgeführt. Funktioniert bei fast allen Unity-Events. Ausgenommen sind zyklische Events, wie Update und FixedUpdate. Danke, Sascha Wie gesagt im Unity Editor funktioniert es Einwandfrei , an solchen Fehlern sollte es nicht liegen. Ich bin wirklich am verzweifeln Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 17. Juni 2016 Melden Share Geschrieben 17. Juni 2016 Funktioniert's denn als PC Standalone? Vielleicht hat die App auf dem Handy keinen Internetzugriff zugesprochen bekommen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 17. Juni 2016 Autor Melden Share Geschrieben 17. Juni 2016 Funktioniert's denn als PC Standalone? Vielleicht hat die App auf dem Handy keinen Internetzugriff zugesprochen bekommen. Auch im PC Standalone funktioniert es. Wie könnte ich das testen ob er den Internetzugriff zugesproche bekommt. Denn wenn ich die App insatlliere steht dort: Vollständiger Internetzugriff Netzwerkstatus anzeigen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 17. Juni 2016 Melden Share Geschrieben 17. Juni 2016 Schau mal, ob du nach dem yield return playerData; in playerData.error etwas drin stehen hast. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 17. Juni 2016 Autor Melden Share Geschrieben 17. Juni 2016 Schau mal, ob du nach dem yield return playerData; in playerData.error etwas drin stehen hast. Wenn ich das im Unity Editor mache ist der Error leer also Null. Ich habe mir auf dem Smartphone die Fehlermeldung ausgeben lassen. Dort bekomme ich diese: java.net.UnknownHostException: host == null Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 17. Juni 2016 Melden Share Geschrieben 17. Juni 2016 Na da haben wir doch was! http://answers.unity3d.com/questions/162082/www-unknownhostexception.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 17. Juni 2016 Autor Melden Share Geschrieben 17. Juni 2016 Na da haben wir doch was! http://answers.unity...texception.html In der tat der Fehler wäre damit gefunden. Doch leider verstehe ich nicht ganz wie ich es beheben kann. Habe bereits die AndroidManifest.xml in mein Plugin Ornder kopiert. Funktioniert nur leider auch nicht Bzw ich weiß nicht so ganz was ich damit anstellen soll Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
runner78 Geschrieben 18. Juni 2016 Melden Share Geschrieben 18. Juni 2016 <?php require_once ("mysqlconnect.php"); // Strings must be escaped to prevent SQL injection attack. $userid = mysql_real_escape_string($_GET['userid'], $db); $wert1= mysql_real_escape_string($_GET['wert1'], $db); $wert2= mysql_real_escape_string($_GET['wert2'], $db); $hash = $_GET['hash']; $privateKey="1234abcdef1234"; # Change this value to match the value stored in the client javascript below $msg = ""; // Test Insert $query = "INSERT INTO werte(userid,wert1,wert2) VALUES ('".$userid."','".$wert1."','".$wert2."');"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); mysql_close($db); ?> Die alten mysql Funktionen gelten schon lange depricated und sind in Version 7 rausgeflogen. Man sollte Beispiele besser schon mit aktuelleren Bibliotheken (msqli oder PDO) zeigen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 18. Juni 2016 Autor Melden Share Geschrieben 18. Juni 2016 Die alten mysql Funktionen gelten schon lange depricated und sind in Version 7 rausgeflogen. Man sollte Beispiele besser schon mit aktuelleren Bibliotheken (msqli oder PDO) zeigen Bin nach wie vor am Error dran. Solche sachen wie Sicherheit etc kommen später Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 21. Juni 2016 Autor Melden Share Geschrieben 21. Juni 2016 Push Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 21. Juni 2016 Melden Share Geschrieben 21. Juni 2016 Wie genau sieht dein host denn aus? Diese Exception kommt zB vor wenn du eine IP angibst die nicht korrekt formatiert ist zB: 127.0.0.1 vs 127.0.0.01 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 21. Juni 2016 Autor Melden Share Geschrieben 21. Juni 2016 Wie genau sieht dein host denn aus? Diese Exception kommt zB vor wenn du eine IP angibst die nicht korrekt formatiert ist zB: 127.0.0.1 vs 127.0.0.01 Bin mir nicht ganz sicher was du mit Host meinst. Ich sende doch per Post eine Variable an das PHP Script, das PHP Script nimmt das ganze an und sendet es weiter an den Server. Funktioniert im Editor auch einwandfrei. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 21. Juni 2016 Melden Share Geschrieben 21. Juni 2016 Das PHP-Skript läuft ja wohl auf dem Server, der übrigend auch "Host" genannt wird. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 21. Juni 2016 Autor Melden Share Geschrieben 21. Juni 2016 Wie genau sieht dein host denn aus? Diese Exception kommt zB vor wenn du eine IP angibst die nicht korrekt formatiert ist zB: 127.0.0.1 vs 127.0.0.01 Das PHP-Skript läuft ja wohl auf dem Server, der übrigend auch "Host" genannt wird. Die Host IP ist diese, auf der ich dann die Coins auslese. www.niXXXXX_.XXXXX.XXXXX.net/XXXXXXX.php Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 22. Juni 2016 Melden Share Geschrieben 22. Juni 2016 Jung! Du solltest "NIEMALS" solch eine Adresse in ein Forum rein schreiben. Egal wie unbedeutend es scheint. Hacker freuen sich über solche Infos. Und deswegen habe ich die Adresse unkenntlich gemacht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Progressive Dev Geschrieben 22. Juni 2016 Autor Melden Share Geschrieben 22. Juni 2016 Jung! Du solltest "NIEMALS" solch eine Adresse in ein Forum rein schreiben. Egal wie unbedeutend es scheint. Hacker freuen sich über solche Infos. Und deswegen habe ich die Adresse unkenntlich gemacht. Okay, habe ich nicht ganz bedacht. Danke! Habe jetzt nun mal was getestet. Habe einfach mal den Host zu google.de oder http://forum.unity-community.de/ und schon kann mein Smartphone das ganze lesen. Aber geht es um meine HostIP funktioniert es wieder nicht. Sehr Mysteriös. Und ja sie ist richtig, habe alles mehrmals getestet Fehler entdeckt, anscheinend kann der WWW Post auf Android kein "_" übersetzen Whatever. Hat jemand eine Lösung dafür oder muss ich mir ernsthaft eine neue Domain kaufen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ahteris Geschrieben 24. Juni 2016 Melden Share Geschrieben 24. Juni 2016 crossdomain.xml? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
runner78 Geschrieben 25. Juni 2016 Melden Share Geschrieben 25. Juni 2016 www.niXXXXX_.XXXXX.XXXXX.net ist ja eine Domain und keine IP, ich hoffe du hast davor das http:// nicht vergessen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.