使用URL将数据发送到服务器

时间:2012-12-12 06:36:24

标签: html lamp

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

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

我可以访问Azure和我的专用LAMP服务器。我希望我的服务器等待使用URL的连接,例如“http://www.myappserver19002393859.com/HighScores?UserID=2fb44e3888?Score=25250” 我想获得UserID&从网址中得分,然后重定向到具有高分表的其他页面...

有什么建议吗?

(编辑:我可以做任何服务器端,只有客户端,我有限制。)

1 个答案:

答案 0 :(得分: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请求提交虚假分数(这就是为什么你有时会在网上记分牌上看到疯狂的高分。)