从 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"]));
}
我的 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"]));
}