我正在使用一个代码,该代码使用 ORDER BY RAND() LIMIT 1 (行数不多,因此可以正常运行) 从数据库中生成随机词。是否有可能,使用 php,只允许用户刷新页面几次有限的时间(通过手动单击刷新或使用表单 ['submit'] 按钮),然后停止随机函数,使其设置为最后一个值?
我知道我可以通过使用会话/cookie 来计算页面访问/刷新,但我不确定如何停止代码运行。
一个 IF 语句就足够了
如果(页数 < 3)
{
Execute code
}
别的
{
Don't execute code
}
勉强构成一个答案,但评论太长了——你没有得到什么?
<?php session_start();
// ...
if(!isset($_SESSION['myCounter']))
$_SESSION['myCounter'] = 0;
if($_SESSION['myCounter'] < $myLimit){
$_SESSION['myCounter']++;
// Do random DB query
$_SESSION['lastResult'] = $dbResult;
}
// Do something with result
echo $_SESSION['lastResult'];
// ...
手册页上甚至还有示例...
使用会话在您的 PHP 脚本上设置一个标志,例如,$_SESSION['runRand'] = 1;
仅当上述变量设置为1时,才运行随机词 db 代码。
所以当用户第一次运行这个脚本时......
将从数据库生成的第一个随机词存储到会话变量中说$_SESSION['firstRand']=$randNum;
所以当用户点击刷新按钮或提交时,PHP 脚本会再次加载并生成一个新的随机词,现在不要存储该词,只需将其与带有会话变量的词进行比较$_SESSION['firstRand'];
当用户不断单击刷新并再次执行相同的过程时,随机词将与 $_SESSION['firstRand']; 匹配。,当时设置会话变量$_SESSION['runRand'] = 0;
。现在,即使用户按下刷新按钮,数据库中的随机代码也不会生成。