Php 正在尝试将随机的on类型保存为隐藏,并出现错误

Php 正在尝试将随机的on类型保存为隐藏,并出现错误,php,forms,random,Php,Forms,Random,在我第一次单击“提交”之前,源代码如下所示(很好): 猜一个介于1和100之间的数字 第一次提交后: Too Low<br> <html> <body> Guess a number between 1 and 100 <form action="/www/lesson4/gueeANumber.php" method="GET"> <input type="text" name="my_answer" autofocus>

在我第一次单击“提交”之前,源代码如下所示(很好):


猜一个介于1和100之间的数字


第一次提交后:

Too Low<br>
<html>
<body>
Guess a number between 1 and 100
<form action="/www/lesson4/gueeANumber.php" method="GET">
    <input type="text" name="my_answer" autofocus>
    <input type="hidden" name="number" value="<br />
<b>Notice</b>:  Undefined variable: number in <b>C:\xampp\htdocs\www\lesson4\gueeANumber.php</b> on line <b>30</b><br />
">
    <br><br>
    <input type="submit" value="Submit">

</form>
</body>
</html>
过低
猜一个介于1和100之间的数字

下面是我使用php的全部代码:

<?php
if(!empty($_GET))
{
    if(isset($_GET['number'])){
        $guess=(int)$_GET['my_answer'];
        $num=(int)$_GET['number'];
        if($guess<$num){
        echo "Too Low"."<br>";
    }
        else if($guess>$num){
        echo "Too High"."<br>";
    }
        else{
        echo "Correct!";
            exit();
    }
    }
}
else
{
    $number=mt_rand(1,100);
}
?>

<html>
<body>
Guess a number between 1 and 100
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="GET">
    <input type="text" name="my_answer" autofocus>
    <input type="hidden" name="number" value="<?php echo $number?>">
    <br><br>
    <input type="submit" value="Submit">

</form>
</body>
</html>

猜一个介于1和100之间的数字

您没有名为$number的php变量,您在html中引用它

我相信你应该指的是$num

改变

<input type="hidden" name="number" value="<?php echo $number?>">

那么,错误在哪里?尽管我猜,您可能在提交表单后出现了错误,特别是
未定义索引:$number
实际上,OP在
else
部分-->
$number=mt_rand(1100)你是对的。现在我看到了,出现错误的原因是PHP知道可能无法创建变量$number,这取决于用户输入,因此它不允许您在html中使用它。您可以通过在html中的$number前面添加@来解决此问题。
<input type="hidden" name="number" value="<?php echo $number?>">
<input type="hidden" name="number" value="<?php echo $num?>">