| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Stuttgart
Beiträge: 118
|
Hallo, ich hab ein kleines Problem mit PhP. Ich möchte von einem lokalen Rechner von einer laufenden swf anwendung eine Variable spieler0 an einen Php skript senden, der auf einem fähigen server liegt. Es soll in meinem Spiel nämlich möglich sein offline zu spielen sich bei der higscoreanzeige ins netzt einzuwählen und den spielstand auf eine online highscoreliste abzulegen. Diese Highscoreliste greift auf eine Textdatei im UTF-8 Format zu in der die Variable spieler0 enthalten ist. in der lokalen swf anwendung gebe ich die variable folgendermaßen an den Php Script weiter: Code: loadVariables("www.test.de/eintragen.php", _root, "POST"); Code: <?
$spieler0 = stripslashes($spieler0);
$spieler0 = urlencode($spieler0);
$fq = fopen("spielerscore.txt,"w");
fputs($fp,"spieler0=".$spieler0."&");
fclose($fp);
?> Code: &spieler0=10& &spieler1=100& &spieler2=1000& mit dem beschriebenen script funktioniert es aber nicht. wo habe ich meinen fehler? kann mir jemand helfen? |
| | |
| | #2 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
Hi, schreib mal http://www.test.de/eintragen.php. ohne http sucht Flash ein lokales Verzeichnis mit diesem Namen... btw: ab MX würde ich an deiner Stelle lieber das LoadVars-Objekt benutzen, und die Daten mit sendAndLoad() versenden... Grüße Sascha
__________________ 12:15, press return |
| | |
| | #3 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
den anderen Teil hatte ich übersehen. Du musst in PHP natürlich erstmal die txt einlesen und parsten um zu schauen, ob der Spieler bereits einen Eintrag hat und ob der neue höher ist als der vorhandene. Das Problem wird nur sein, dass mehrere Leute ggf. den gleichen Spielernamen verwenden. Momentan ersetzt du die Datei immer wieder. Du musst es als append schreiben. Oder wie gesagt die gesamte Datei einlesen, nach dem Spielernamen suchen, den Wert ggf. ersetzen und alles wieder neu schreiben. Wenn du eine (mySQL-)Datenbank verwenden kannst, ist das sichedrlich einfacher. Grüße Sascha
__________________ 12:15, press return |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Stuttgart
Beiträge: 118
|
im original script habe ich http dabei. das ist es aber nicht. ist es überhaupt möglich von einem rechner daten an ein online php script zu senden. es sit nämlich keine einbettung in html sondern eine reine swf datei bzw. exe. wie funktioniert das mit dem Loadvars object kann st du das mal für mich abändern? mein php script ist ok? |
| | |
| | #5 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
lokal ist es möglich, einen beliebigen Server anzusprechen. Das ist prinzipiell nicht das Problem. Was genau funktioniert denn nicht? Kommen die Daten erst gar nicht an? Ist der Inhalt der txt falsch? Mit LoadVars ginge es wie folgt: ActionScript:
im onLoad kannst du Rückgabewerte mit this.varname abfragen. So kannst du dir beispielsweise direkt die neue Highscoreliste übertragen. Zu deinem PHP-Skript hab ich dir eben schon was geschrieben. Sonst probier es halt erstmal mit einem lokalen Server aus, indem du die Werte einfach per Getstring übergibst. Es ist ohnehin immer sinnvoll, das schrittweise zu erstellen. Schreib dein PHP, teste es lokal. Dann lade es von Flash aus. So hast du mehr Kontrolle darüber und kannst auch testen, ob überhaupt alles im PHP-Skript ankommt, was ankommen soll. Grüße Sascha
__________________ 12:15, press return |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Stuttgart
Beiträge: 118
|
die spieleranzahl ist konstant es gibt nur 25 spieler neue spieler können nicht beitreten also ist das ganze statisch. die abfrage ob der punktestand höher ist mache ich schon in Flash. der script wird nur bei höherer punktzahl aufgerufen. ich kenne mich in php nicht gut aus. könntest du mir einen kleinen bespielscript schreiben? je nach dem welcher spieler spielt von den 25 wird vor spielende eine variable _root["spieler"+spieler] erzeugt zB. für spieler 1 --> Variable: spieler1 ist der punktesatnd größer wird in diese variable der neue punktestand geschrieben und an php übermittelt. |
| | |
| | #7 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
ja, das könnte ich machen, halte es aber nicht für sinnvoll, was den Lerneffekt angeht... ![]() Also nur eine kurze Anleitung, was du machen solltest: 1. Lese die txt ein und speichere die Daten zeilenweise in einem Array Beispiele hierfür solltest du überall im Netz finden. 2. Durchsuche das Array, bis du auf den übergebenen Spielernamen triffst. Deine Zeile sieht ja immer gleich aus, also etwa: &spieler0=1200& Du könntest z.B. nach dem "=" splitten (explode) und den vorderen Teil vergleichen. 3. Hast du den Spieler gefunden, ersetze bei diesem Index im Array den Eintrag gegen den neuen Wert. 4. Schreibe die Daten aus dem Array wieder in eine Datei. Grüße Sascha
__________________ 12:15, press return |
| | |
| | #9 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
das sehe ich jetzt erst: deine Datei-Resource ist falsch: $fq = fopen("spielerscore.txt,"w"); fputs($fp,"spieler0=".$spieler0."&"); fclose($fp); Du hast oben fq, danach fp... Grüße Sascha
__________________ 12:15, press return |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Stuttgart
Beiträge: 118
|
das wäre ja alles kein problem wenn ich in eine txt per php schreiben könnte aber genau das geht ja nicht. HILFE!! warum macht php nichts hab es auch schon mit apache server lokal versucht geht auch nicht. |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Stuttgart
Beiträge: 118
|
schreibrechte habe ich. ich habe mal dden php script als ANSI gespeichert, jetzt erstellt er schonmal eine textdatei php script Code: <? $eintragung = "spielerscore.txt"; $fp = fopen($eintragung,"w"); fputs($fp,"spieler0=".$spieler0); fclose($fp); ?> Code: spieler0= die variable spieler0 ligt im _root also _root.spieler0 in einem Movieclip hab ich den code: Code: on(release){
loadVariables("eintrag.php",_root,"POST");
trace(_root.spieler0);
} _root.loadVariables("eintrag.php","","POST"); schreiben? oder ist loadVariables("eintrag.php",_root,"POST"); in ordnung? |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |