Php 保留、重定向和重新加载

Php 保留、重定向和重新加载,php,html,Php,Html,我正在尝试使用PHP创建一个简单的数学测验。这意味着生成两个随机数供用户相乘。如果用户在正确的答案中键入,则意味着将其重定向到祝贺性html页面(使用页眉)。但是,如果他们的回答有误,则问题将变为一条信息,说明这一点,并给他们另一次回答的机会 到目前为止,我已经完成了所有工作,除了一件事,那就是在每次提交错误的内容后保留问题和答案。我怎样才能阻止这种事情发生?如何阻止脚本每次生成新的问题/答案?我使用了隐藏文本字段,但它们似乎没有起到作用。您的代码假设您在$\u POST中传递了$num1和$n

我正在尝试使用PHP创建一个简单的数学测验。这意味着生成两个随机数供用户相乘。如果用户在正确的答案中键入,则意味着将其重定向到祝贺性html页面(使用页眉)。但是,如果他们的回答有误,则问题将变为一条信息,说明这一点,并给他们另一次回答的机会


到目前为止,我已经完成了所有工作,除了一件事,那就是在每次提交错误的内容后保留问题和答案。我怎样才能阻止这种事情发生?如何阻止脚本每次生成新的问题/答案?我使用了隐藏文本字段,但它们似乎没有起到作用。

您的代码假设您在$\u POST中传递了$num1和$num2,但没有隐藏字段:

<input type = "hidden" name = "num1" value="<?php echo $num1; ?>"/>
<input type = "hidden" name = "num1" value="<?php echo $num2; ?>"/>

谢谢你的评论。我现在的代码中确实有这两行代码,但我在这里提交代码之前把它们删掉了,忘记删除相应的邮政编码。不管怎么说,这两种方法都不起作用。到底是什么导致了错误?它是否显示“你错了”信息?它是否显示带有旧数字的问题?如前所述,我认为答案输入值是错误的,因为您是将随机生成的$num1和$num2变量相乘,而不是将发布的变量相乘。此时确实会显示“you's error.”,并再次提供输入正确答案的机会。但是脚本似乎没有存储初始答案并将其与用户的答案进行比较。因此,如果用户第一次键入错误的答案,然后得到“you's Error”,并再次尝试键入答案,则实际答案(初始答案)自单击submit后已发生更改。基本上,我需要阻止它改变。这就是我所想的。。。我已经编辑了我的回复以修复答案字段。谢谢你的建议!但它似乎不起作用num1'和num2'显示为未定义,答案总是停留在0上。请注意,
$\u服务器['PHP\u SELF']
容易受到代码注入的攻击。用别的东西。
if (!isset($_POST['num1'])) {
  $num1 = Rand(1,10);
  $num2 = Rand(1,10);
} else  {
  $num1 =  $_POST['num1'];
  $num2 =  $_POST['num2'];
}
$answer = $num1 * $num2;