PHP比较值不起作用

时间:2014-09-11 08:25:31

标签: php html

我有一张表格,我已经提出了自定义安全问题。 它使用代码随机化一个问题

$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";
}

然而,即使我输入了正确答案,它也会给我错误信息,我做错了什么?

1 个答案:

答案 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>