【问题标题】:$_POST undefined index PHP error$_POST 未定义索引 PHP 错误
【发布时间】:2016-08-11 03:32:10
【问题描述】:

接收字符串的我的html代码:

<!DOCTYPE html>
<head>
    <title>title</title>
</head>
<body>
    <font face="Segoe UI" siz ="3">
    <form action="process.php" action="post">
    Suggestion: <input type="text" name="sgst" autocomplete="off">
    <input type="submit">
</form>
</font>
</body>
</html>

我的 PHP 处理它:(process.php)

<?php
    if ($_POST["sgst"]=="john") {
        echo "john";
    } else {
        echo "someone";
    }
?>

我收到了错误

注意:未定义索引:第 2 行 C:\xampp\htdocs\test\process.php 中的 sgst

谁能告诉我是什么导致了错误?

【问题讨论】:

  • 您实际上是在发布表单吧?
  • 在您的表单属性中请使用 method="post" 而不是 action="post"。
  • 表示没有传入任何值。PHP 通知一般可以忽略,除非您遇到其他问题。
  • Undefined index with $_POST 的可能重复项
  • @hardiksolanki 是的,这是一个错字。可能是昨晚没睡的缘故。谢谢! :D

标签: php html


【解决方案1】:

您在 form 元素上重复使用 action 属性:

<form action="process.php" action="post">

考虑到这一点,我很惊讶表单甚至会发布。尽管考虑到这些症状,但它似乎至少足以混淆 POST。我认为您的意思是使用 method 属性:

<form action="process.php" method="post">

其他几点说明:

  • 您需要在服务器端代码中使用isset()。代码不应假定所有值都将被发布,因为服务器无法控制客户端发送它的内容。最好在使用前明确验证传入的数据。
  • font 元素已经过时了,如果它们没有被正式弃用,它们应该是 :) CSS 样式将是客户端 UI 样式的最佳选择。

【讨论】:

    【解决方案2】:

    使用 isset

    if(isset($_POST["sgst"]=="john")){
    
    } 
    

    【讨论】:

      【解决方案3】:

      它显示未定义,因为一开始该值未初始化

      使用isset() 来检查是否声明了值,那么它不会显示错误...

      试试这个我已经改变了

      <?PHP 
      if (isset($_POST["sgst"])
      {
         if ($_POST["sgst"]=="john") {
          echo "john";
         } else {
          echo "someone";
         }
      }
      ?>
      

      【讨论】:

      • 无论我现在输入什么名字,它总是说“某人”。
      • 试试这个我改了
      【解决方案4】:

      尝试关注

      在表单标签中使用类似method="post"的方法属性而不是action="post"

      【讨论】:

        【解决方案5】:

        您缺少方法属性。

        使用两个表单 - 删除第一个表单。

        试试这个,

        <form action="process.php" method="post">
        
         <?php
                if(!empty($_POST)){
                if ($_POST["sgst"]=="john") {
                        echo "john";
                    } else {
                        echo "someone";
                    }
                }
                ?>
        

        【讨论】:

          【解决方案6】:
          <!DOCTYPE html>
          <head>
              <title>title</title>
          </head>
          <body>
              <font face="Segoe UI" siz ="3">
              <form action="process.php" method="post">
              Suggestion: <input type="text" name="sgst" autocomplete="off">
              <input type="submit">
          </form>
          </font>
          </body>
          </html>    
          
          
           if (isset($_POST["sgst"]) && $_POST["sgst"]=="john") {
                      echo "john";
                  } else {
                      echo "someone";
                  }
          

          【讨论】:

            猜你喜欢
            • 2018-09-11
            • 2018-12-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-21
            • 2016-08-17
            • 1970-01-01
            • 2012-05-23
            相关资源
            最近更新 更多