从 PHP 的 HTML 表单调用输入时的未定义值

Undefined value when calling an input from a HTML form from PHP

我的 PHP 出现一些问题。我正在尝试将文本框中的值分配给一个变量,以便我可以根据随机数对其进行检查。

这是我在初始化我的变量:

session_start();
if (!isset ($_SESSION["rand"])) {
$_SESSION["rand"] = rand(0,100);}
$rand = $_SESSION["rand"];

if(!isset ($_SESSION["att"])) {
$_SESSION["att"] = 0;}

这是表格本身:

<form method="post">
<input type="text" id="guess" name="guess"/>
<input type="submit" value="Guess"/>
</form>

这是导致问题的部分:

$answer = htmlspecialchars(trim($_POST["guess"]));

这是我收到的错误

我正在努力做到什么都不说,我知道这是因为 guess 还没有给它定义任何东西,但我不确定在我没有定义的时候该定义什么不需要它。

因为你在一个文件中使用所有东西 <form method="post"> 是什么放弃了它,因为如果省略 action 默认为 "self",因此你需要使用条件 isset()!empty()

  • 也请参考我的"footnotes"。

即:

if(isset($_POST["guess"])){

   $answer = htmlspecialchars(trim($_POST["guess"]));

}

if(!empty($_POST["guess"])){

   $answer = htmlspecialchars(trim($_POST["guess"]));

}

参考文献:


脚注:

即使您将它们分成两个单独的文件,最好仍然使用条件 isset()!empty().

使用条件 isset()。它用于检查是否设置了变量。

当您最初加载页面时,您的 POST 数据未设置,这就是您收到该通知的原因。

if(isset($_POST["guess"]) && $_POST["guess"] !=""){
   $answer = htmlspecialchars(trim($_POST["guess"]));
}