Random 减去2个随机数,无法比较

Random 减去2个随机数,无法比较,random,input,numbers,compare,Random,Input,Numbers,Compare,我对编码还不熟悉,所以这可能是一个愚蠢的错误,但我就是不知道出了什么问题。我制作了一个电子邮件表单,其中有一个功能,可以检查是否是人发送消息。 他们必须回答一个由随机数生成的简单数学问题。 但是当我试图检查输入是否正确时,出现了一些问题 我正在使用的代码的相关部分: 首先,我生成两个随机数,计算正确的结果,并将答案转换为变量: $number = array( mt_rand(1,5), mt_rand(6,10) ); $outcome = $number[1] - $number[0]; $

我对编码还不熟悉,所以这可能是一个愚蠢的错误,但我就是不知道出了什么问题。我制作了一个电子邮件表单,其中有一个功能,可以检查是否是人发送消息。 他们必须回答一个由随机数生成的简单数学问题。 但是当我试图检查输入是否正确时,出现了一些问题

我正在使用的代码的相关部分: 首先,我生成两个随机数,计算正确的结果,并将答案转换为变量:

$number = array( mt_rand(1,5), mt_rand(6,10) );
$outcome = $number[1] - $number[0];
$human      = $_POST['message_human']; 
答案放在哪里的部分:

<label for="message_human">
<input type="text" style="width: 44px;" placeholder="…" name="message_human"> + <?php echo $number[0];?> = <?php echo $number[1];?>
</label>
我一直得到“非人为错误”的答案。 我试着把$outcome做成一个数组和各种各样的操作符,但都没用。
当我给$outcome一个固定值,比如=“2”;一切正常,但我希望它是一个随机数。非常感谢您的帮助。

如果我正确理解您的代码,您不会保存这些随机数,对吗? 那么,当你只生成一组新的随机数时,你如何才能得到正确的答案呢

一种可能的解决方案是将这些值保存在会话变量中

session_start();
$_SESSION['outcome'] = $outcome;
稍后将其与此变量进行比较,但确保它不会被新生成的一组随机数覆盖

if($_POST['message_human'] == $_SESSION['outcome']){
    //correct
}

我花了一些时间,但在你的帮助下,我终于让它工作了。对不起,新评论,只能编辑5分钟。。必须再改变几件事:$_SESSION['outcome']=$outcome;必须把它放在电子邮件脚本的其余部分下面。此外,我需要检查是否已经有一个会话正在运行,在页面顶部使用:if(!isset($_SESSION)){SESSION_start();为我完成了这个任务。非常感谢你的帮助!我投了你一票,但我的票还不算在内。。
if($_POST['message_human'] == $_SESSION['outcome']){
    //correct
}