【问题标题】:Undefined value when calling an input from a HTML form from PHP从 PHP 的 HTML 表单调用输入时未定义的值
【发布时间】:2015-08-05 11:11:14
【问题描述】:

我的 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 没有对其进行任何定义,但我不确定在不需要它时定义它的内容。

【问题讨论】:

    标签: php html forms variables call


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      由于您使用的是一个文件中的所有内容,&lt;form method="post"&gt; 是其泄露的原因,因为如果省略,action 默认为“self”,因此您需要使用条件isset()!empty()

      • 另请参阅我的“脚注”。

      即:

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

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

      参考资料:


      脚注:

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

      【讨论】:

      • 打败我。干得好
      • 这似乎已经解决了这个问题,但现在它无法识别 $answers 之外的 if 语句。另外,感谢您的宝贵时间!
      • 我知道我做错了什么,无需回复。感谢您的帮助!
      • @Tauntaunwampa 不客气。如果您希望根据 POST 数组和会话数组检查该值,则需要比较该条件语句中的两者。似乎缺少那部分。即:$_POST["guess"] = $_SESSION["rand"];$_SESSION["rand"] = $_POST["guess"]; 带有条件 if==
      • @Tauntaunwampa 不客气,很高兴知道问题已解决,干杯
      猜你喜欢
      • 2018-04-12
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多