0

サーバー側の URL でデータを解釈する方法を探しています。クライアント側では、URL を制御でき、URL のデータをプログラムで生成できますが、ソース コードに直接アクセスすることはできません。

最終的には、オフライン ゲーム用のオンライン ハイスコア システムを構築しようとしています。

Azure と専用の LAMP サーバーにアクセスできます。「http://www.myappserver19002393859.com/HighScores?UserID=2fb44e3888?Score=25250」のような URL を使用する接続をサーバーが待機するようにしたい URL から UserID とスコアを取得し、次に、ハイスコア表のある別のページにリダイレクトします...

助言がありますか?

(編集:サーバー側で何でもできます。制限があるのはクライアント側だけです。)

4

1 に答える 1

0

PHP の$_GETコレクションを使用します。これには、URI のクエリ文字列のキーと値のペアが含まれています。

あなたが与えた例では、次のようになります。

HighScoresHandler.php

<?php
$userId = $_GET['UserID'];
$score  = $_GET['Score'];

// Validation

if( empty( $userId ) || empty( $score ) ) {
    echo "No UserID or Score provided.";
    exit();
}
$score = intval( $score );
if( $score === 0 ) {
    echo "Invalid score specified.";
    exit();
}

// Verification

// TODO: Query your database to ensure the user specified by $userID exists.
// Make sure you do this safely as not to be subject to SQL injection.

$sql = "SELECT COUNT(*) FROM Users WHERE UserID = @userId";

// Action

$sql = "INSERT INTO HighScores ( UserID, Score ) VALUES ( @userId, @score )";


?>

何らかの形式の MAC (メッセージ認証コード) またはその他のシステムを実装して、スコアが本物であることを確認することをお勧めします。そうしないと、偽の HTTP リクエストを使用して誰かが偽のスコアを送信するのを止めることはできません (このため、オンラインスコアボードに投稿された非常に高いスコア)。

于 2012-12-12T07:22:15.800 に答える