0

我正在使用一个代码,该代码使用 ORDER BY RAND() LIMIT 1 (行数不多,因此可以正常运行) 从数据库中生成随机词。是否有可能,使用 php,只允许用户刷新页面几次有限的时间(通过手动单击刷新或使用表单 ['submit'] 按钮),然后停止随机函数,使其设置为最后一个值?

我知道我可以通过使用会话/cookie 来计算页面访问/刷新,但我不确定如何停止代码运行。

4

3 回答 3

0

一个 IF 语句就足够了

如果(页数 < 3)

{

  Execute code

}

别的

{

   Don't execute code

}

于 2013-09-14T07:43:56.433 回答
0

勉强构成一个答案,但评论太长了——你没有得到什么?

<?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'];

// ...

手册页上甚至还有示例...

于 2013-09-14T07:45:54.313 回答
0

使用会话在您的 PHP 脚本上设置一个标志,例如,$_SESSION['runRand'] = 1;

仅当上述变量设置为1时,才运行随机词 db 代码。

所以当用户第一次运行这个脚本时......

将从数据库生成的第一个随机词存储到会话变量中说$_SESSION['firstRand']=$randNum;

所以当用户点击刷新按钮或提交时,PHP 脚本会再次加载并生成一个新的随机词,现在不要存储该词,只需将其与带有会话变量的词进行比较$_SESSION['firstRand'];

当用户不断单击刷新并再次执行相同的过程时,随机词将与 $_SESSION['firstRand']; 匹配。,当时设置会话变量$_SESSION['runRand'] = 0;。现在,即使用户按下刷新按钮,数据库中的随机代码也不会生成。

于 2013-09-14T07:48:00.360 回答