我正在寻找一种解释URL,服务器端数据的方法。 客户端,我可以控制URL是什么,我可以以编程方式为URL生成数据,但我没有直接访问源代码。
所以最终,我正在尝试建立一个在线高分系统,用于离线游戏。
我可以访问Azure和我的专用LAMP服务器。我希望我的服务器等待使用URL的连接,例如“http://www.myappserver19002393859.com/HighScores?UserID=2fb44e3888?Score=25250” 我想获得UserID&从网址中得分,然后重定向到具有高分表的其他页面...
有什么建议吗?
(编辑:我可以做任何服务器端,只有客户端,我有限制。)
答案 0 :(得分:0)
使用PHP的$_GET
集合。它包含URI的查询字符串的键/值对。
在你给出的例子中,它看起来像这样:
<?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请求提交虚假分数(这就是为什么你有时会在网上记分牌上看到疯狂的高分。)