我正在使用自己的安全表单,或者您可以说安全挑战问题。
但问题是我每天都会手动更改这个问题。
有没有办法每隔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>
所以我想改变链接“请写下你的问题?”在两种情况下,在一段时间间隔后随机。
答案 0 :(得分:1)
我得到了答案,它的工作完美...... !! 感谢每一个
// 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);
}
答案 1 :(得分:0)
如果我是你,我不会重新发明轮子并去寻找经过验证的解决方案,例如reCaptcha。
但是,如果你真的必须提出自己的解决方案 - 像往常一样,有许多答案可以被认为是正确的。
首先 - 如果您正在使用数据库,您可以在其中存储一整套安全短语,并随机选择一个 - 如果使用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请求中获取答案等。 / p>
我仍然会使用reCaptcha:)