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

时间:2015-05-23 13:48:49

标签: php html forms variables call

我的PHP遇到了一些问题。我试图将文本框中的值分配给变量,以便我可以根据随机数进行检查。

这是我初始化我的变量:

>>> [''.join((x, str(y))) for x in ['a','b','c'] for y in range(1,5)]
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']

这是表格本身:

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>

这是我收到的错误 enter image description here

我试图通过它来实现它,我知道它是因为$answer = htmlspecialchars(trim($_POST["guess"])); 没有任何定义,但我不确定在我不需要的时候定义什么。

2 个答案:

答案 0 :(得分:4)

由于您在一个文件中使用了所有内容<form method="post">,因此action默认为“self”(如果省略),因此您需要使用条件isset()!empty()

  • 也请查阅我的“脚注”。

即:

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

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

}

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

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

}

参考文献:

脚注:

即使您将这些文件拆分为两个单独的文件,最好还是使用条件isset()!empty()

答案 1 :(得分:2)

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

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

POST