2009-04-05 10 views
0

私はブラウザベースのゲームを作成していますが、現時点で私はマップの別の部分をクリックすると自分のキャラクターの位置を更新するスクリプトを設計しています。JavaScriptを使ってPHP変数を送信する(リンク?)

私はposition_update.phpというPHPファイルにリクエストを送信するためにこれを行うために少しのajaxを使用しています。しかし、それが機能するためには、2つの値を一緒に送る必要があるので、新しい位置が何であるか知っています。どうすればいいですか?以下はPHPファイルへのリクエストを送信する私のリンクです。

<a onClick="positionUpdate();"><img src="images/transparent.gif" border="0" /></a> 

メモとして、私は値を取得するためにphp $ _GETスーパーグローバルを使用しています。

おかげで、あなたはURLをヒットする必要がStanni

答えて

5

position_update.php?var1=val1&var2=val2 

PHPはところで、あなたはそれが同等のものを持っていることによって優雅に低下することを確認すべきである$ _GET

1

に入る文字列を解析しますjs以外のユーザーにも有効なhref値。あなたはURL文字列をエンコードする必要がある場合には

+0

IIRCのアプリケーションでは、AJAXを使用してタイルベースのゲームをレンダリング/更新しています。したがって、JavaScriptを有効にしないと、ユーザーはとにかくゲームをプレイできなくなります。 – Calvin

0

にencodeURL(javascript関数を使用)

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

そして、クライアントサーバアーキテクチャでは、中にあまりにも多くの暗黙の信頼を置いていないことを覚えておいてくださいクライアント。ゲームの仕組みとルールの適用を処理するアプリケーションロジックは、すべてサーバー側コンポーネントに含まれている必要があります。

数年前、このようなセキュリティ上の考慮を払わずに設計されたTetriNET(マルチプレイヤーオンラインテトリス)というゲームがありました。通信プロトコルを解読するのに約3日かかりましたが、基本的にブロックを作成/消去するためのサーバーコマンドを使って他のプレイヤーの画面を描画していました。シンプルなプロキシを使用すると非常に簡単になりました。

したがって、クライアントにが「知らせる」サーバーにのプレイヤーが存在するようにしないでください。インターフェイスを表示し、入力を収集し、出力を表示するためにのみ、クライアントを使用してください。だから、クライアントに(方向、距離など)を移動させようとしているサーバーにが「ほしい」と指定してサーバーにのサーバーを指定してください。プレーヤーが法的に許されている動きに基づいてプレーヤーの位置を計算し、彼の前の位置。

関連する問題