我有一张表格,我已经提出了自定义安全问题。 它使用代码随机化一个问题
$rand1 = rand ( 1,20 );
$rand2 = rand ( 1,20 );
$randsvar = $rand1 + $rand2;
$securefråga = "Vad blir " . $rand1 . "+" . $rand2;
然后我将其解析为我的代码
$_POST["secure"]
之后我将它们转换为整数并将转换后的$ randsvar和表格值与代码进行比较
$intSecure = intval($secure);
$intRand = intval($randsvar);
if($intSecure == $intRand)
{
$errorNummer++;
}
else
{
$secureErr = "wrong answer";
}
然而,即使我输入了正确答案,它也会给我错误信息,我做错了什么?
答案 0 :(得分:1)
您可以使用会话保存当前操作。如果提交,则将用户输入与保存的会话总数进行比较。粗略的例子:
if(!isset($_POST['submit'])) {
$_SESSION['rand1'] = rand(1, 20);
$_SESSION['rand2'] = rand(1, 20);
$_SESSION['randsvar'] = $_SESSION['rand1'] + $_SESSION['rand2'];
} else {
$input = $_POST['input'];
if($input == $_SESSION['randsvar']) {
echo 'correct';
} else {
echo 'incorrect';
}
exit;
}
?>
<form method="POST">
<label>
<?php echo $_SESSION['rand1'] . ' + ' . $_SESSION['rand2'] . ' = '; ?>
<input type="text" name="input" />
<input type="submit" name="submit" />
</label>
</form>