Php 需要在时间间隔后生成随机数

Php 需要在时间间隔后生成随机数,php,security,random,Php,Security,Random,我用的是我自己的安全表格,或者你可以说是安全挑战问题 但问题是我每天都要手动更改这个问题 有没有办法在每5分钟后自动更改一次 以下是该系统的代码: if (!$_POST['security_question'] || $_POST['security_question'] != '**PUT HERE YOUR QUESTION?**' ) { $errors[] = t('You must answer security question correctly!'); } <tr c

我用的是我自己的安全表格,或者你可以说是安全挑战问题

但问题是我每天都要手动更改这个问题

有没有办法在每5分钟后自动更改一次

以下是该系统的代码:

if (!$_POST['security_question'] || $_POST['security_question'] != '**PUT HERE YOUR QUESTION?**' ) {
 $errors[] = t('You must answer security question correctly!');
 }
<tr class="row1">
 <td>'.t('Security Question:').'</td>
 <td>**PUT HERE YOUR QUESTION?**

 <input type="text" name="security_question"/>
 </td>
 </tr>
if(!$\u POST['security\u question']|$\u POST['security\u question']!='**把你的问题放在这里?**){
$errors[]=t('您必须正确回答安全问题!');
}
'.t('安全问题:')。'
**把你的问题放在这里**

因此,我想在两种情况下,在一段时间间隔后随机更改链接“把你的问题放在这里”。如果我是你,我不会重新发明轮子,并寻求一种经过测试的解决方案,例如

然而,如果你真的必须拿出你自己的解决方案——像往常一样,有许多答案可以被认为是正确的

首先,如果您使用的是数据库,您可以在其中存储一整套安全短语,然后随机挑选一个-如果使用MySQL:

SELECT question,answer FROM security_questions ORDER BY RAND();
或者,您可以简单地将一组问题存储在一个数组中:

$myQuestions = array("What is four plus three?", "What is two plus one?");
$myAnswers   = array("7","3");

$random = array_rand($myQuestions);
$rndQuestion = $myQuestions[$random];
$rndAnswer   = $myAnswers[$random];
或者,如果你在使用数学问题,你也可以在飞行中补上一道题:

$value1 = rand(0,10);
$value2 = rand(0,10);

$question = "What is ".$value1." plus ".$value2."?";
$answer = $value1 + $value2;
在所有这些情况下,您必须非常注意的是,对页面进行编码时,黑客无法绕过页面,也无法从正在后台进行的HTTP请求中获取答案等


我仍然会使用reCaptcha:)

我得到了答案,它工作得非常好。。!! 谢谢大家

// Create a random number between 0 and 9999 every 5 minutes
function random() {
  $interval = 60*5; // Interval in seconds
  srand(floor(time() / $interval)); 
  echo rand(0, 9999); 
}

我试图改进你的拼写和语法,但不知道如何理解“froum”…哦,对不起。。我不是英国人。谢谢你的回答,我也在使用reCptcha,但很多垃圾邮件者过去经常破解它,并用那里的链接对网站进行垃圾邮件处理。!!是的,我介绍了你的解决方案,但我想为它创建一个单独的函数,然后使用它。。!!因此,对于meThnaks gusy来说,你的回答似乎是个麻烦。我使用函数randommm(){srand(floor(time()/(60*60*12));echo rand()%10000;}得到了解决方案。有趣的是,你说,我从来没有,从来没有遇到过让任何人通过无效帐户的问题。这是我选择的解决方案,因为它从未让我失望!这真的不好笑。。我也喜欢重新验证码,但可能有一个网站只需花1美元就可以在谷歌上查到。。