0

我正在寻找一种方法来解释服务器端 URL 中的数据。在客户端,我可以控制 URL 是什么,并且可以通过编程方式为 URL 生成数据,但我无法直接访问源代码。

所以最终,我正在尝试为离线游戏构建一个在线高分系统。

我可以访问 Azure 和我的专用 LAMP 服务器。我想让我的服务器等待使用类似“http://www.myappserver19002393859.com/HighScores?UserID=2fb44e3888?Score=25250”的 URL 的连接我想从 URL 获取用户 ID 和分数然后使用高分表重定向到另一个页面......

有什么建议么?

(编辑:我可以在服务器端做任何事情,这只是我有限制的客户端。)

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 回答