2009-04-05 8 views
0

Ich erstelle ein browserbasiertes Spiel und im Moment entwerfe ich das Skript, das die Position meines Charakters aktualisiert, wenn er/sie auf einen anderen Teil der Karte klickt.php Variablen mit Javascript (link?) Einreichen

Ich benutze ein bisschen Ajax, um dies zu tun, die eine Anfrage an eine PHP-Datei namens position_update.php senden. Aber damit es funktioniert, muss ich zwei Werte mitschicken, damit es weiß, was die neue Position ist, wie mache ich das? Unten ist mein Link, der die Anfrage an die php-Datei sendet.

Als eine Anmerkung, verwende ich die php $ _GET super global, um die Werte abzurufen, wenn sie gesendet werden.

Danke, Stanni

Antwort

5

Sie müssen die URL treffen:

position_update.php?var1=val1&var2=val2 

PHP wird die get-String in $ _GET

1

BTW analysieren, sollten Sie ein Äquivalent, dass degradiert anmutig gewährleisten, indem href-Wert, der für Nicht-js-Benutzer funktioniert.

+0

IIRC, seine Anwendung verwendet AJAX zum Rendern/Aktualisieren eines Kachel-basierten Spiels. Ohne Javascript wäre der Benutzer nicht in der Lage, das Spiel trotzdem zu spielen. – Calvin

0

Im Fall, dass Sie die URL-Zeichenfolge kodieren, verwenden Sie die JavaScript-Funktion encodeURL():

sUrl = encodeURL("position_update.php?dir="+sDir+"&dist="+sDist); 

Und denken Sie daran, dass nicht zu in einem Client-Server-Architektur, setzen viel implizites Vertrauen in die Klient. Die gesamte Anwendungslogik, die die Spielmechanik und die Durchsetzung von Regeln behandelt, sollte in der serverseitigen Komponente enthalten sein.

Vor ein paar Jahren gab es ein wirklich populäres Spiel namens TetriNET (Multiplayer Online Tetris), das ohne diese Sicherheitsaspekte entworfen wurde. Ich brauchte ungefähr 3 Tage, um das Kommunikationsprotokoll zu knacken und im Grunde auf den Bildschirmen anderer Spieler zu zeichnen, indem ich Serverbefehle zum Erstellen/Löschen von Blöcken verwendete. Es machte Betrug mit einem einfachen Proxy sehr einfach.

Also lassen Sie nicht den Client 'sagen' den Server, wo der Spieler ist. Verwenden Sie den Client nur zum Anzeigen der Schnittstelle, Erfassen von Eingaben und Anzeigen der Ausgabe. So muss der Client dem Server mitteilen, wo der Spieler "möchte" (Richtung, wie weit, etc.) bewegen, und dann den Server berechnen die Position des Spielers basierend auf was Bewegungen der Spieler gesetzlich erlaubt ist zu machen und seine vorherige Position.

Verwandte Themen