我目前经营一个在线游戏网站,我试图阻止用户一遍又一遍地重新加载页面。我认为这样做的一个好方法是在 URL 中添加一个时间戳变量,如果用户按下重试,它将更新时间戳。
如果时间戳在 5 分钟内,则脚本将允许他们访问,如果 URL 中的时间戳超出 5 分钟限制,则脚本将终止并产生错误。我已经搜索并发现了一些我已经实现的想法,但是 30 分钟后我仍然能够使用相同的 URL。我的网址是这样结束的:ID 是玩家 ID 号,t 是 unix 时间戳
mug.php?ID=186&t=1368036608
这就是我在代码中的内容,以便尝试将其落实到位,我希望我对我正在尝试做的事情足够清楚。URL 中的时间戳不会在刷新时更新,它只会从他们按下杯子按钮的那一刻开始时间戳,所以我相信这是正确的。
include "globals.php";
$_GET['ID'] = isset($_GET['ID']) && is_numeric($_GET['ID']) ? abs(@intval($_GET['ID'])) : false;
$_GET['t'] = isset($_GET['t']) && is_numeric($_GET['t']) ? abs(@intval($_GET['t'])) : false;
$time = time();
$time2 = $_GET['t'];
$futuretime = $time2+(60*5);
if($futuretime < $time2)
{
print "Session Expired. Please go back to the profile page and press the mug button again. ";
die();
}