【问题标题】:Undefined index having problems with POSTPOST 出现问题的未定义索引
【发布时间】:2014-05-30 08:00:51
【问题描述】:

当我第一次在 wamp 中打开该网站时,它会显示:

注意:未定义索引:第 11 行 C:\wamp\www\fshije\fshije.php 中的名称

注意:未定义索引:第 12 行 C:\wamp\www\fshije\fshije.php 中的电子邮件。

但是在我输入一些值后它会起作用并单击提交,通知表将消失。

如果我在 action"anotherfile.php" 内写入,并且通常将 post 更改为 GET 的 PHP 的最后两行在该其他文件中写入,我可以解决这个问题,任何人都可以解释我如何避免在开始时不使用通知表第二个选项。

很抱歉我问了这个问题,我是 php 新手

谢谢

<!DOCTYPE html>
<html>
    <body>
        <?php
            echo'<form method="POST" action="">';
            echo 'Name: <input type="text" name="name"><br>';
            echo 'E-mail: <input type="text" name="email"><br>';
            echo '<input type="submit">';
            echo '</form>';

            echo $_POST['name']; echo "<br>";
            echo $_POST['email'];
        ?>
    </body>
</html>

【问题讨论】:

标签: php jquery html mysql css


【解决方案1】:

$_POST[] 在表单被POSTed 之前不会包含任何内容,请使用isset() 条件。

if(isset($_POST['name'], $_POST['email'])) {
    echo $_POST['name']; echo "<br>";
    echo $_POST['email'];
}

附带说明,如果您正在处理表单,我不会显示任何 HTML(除非您在表单中显示错误)。在这种情况下,您将继续这样的条件:

} else {
     // Display HTML and form here
}

【讨论】:

  • 如果我使用 2 个文件,一个用于 html 代码,一个用于 php 代码,但需要 post get 但这样不需要 isset,知道为什么它会起作用吗?
  • @user3527794 一个文件总是中断的原因是因为你总是在运行echo $_POST['name'] 等(并且$_POST['name'] 直到提交表单之后才包含在内)。如果将其拆分为两个文件,则您的 HTML 文件永远不会查找 POSTed 变量。从技术上讲,如果您直接通过浏览器调用您的 PHP 文件(不使用表单),您仍然会收到错误,因为 $_POST['name'] 仍未定义。
  • 我明白了,我知道如何从输入表单中获取输入并将其粘贴到变量中,例如在该示例中,如果有人会写 2 数字,我如何获取 em 并将 em 粘贴到 2变量?
  • 不确定我是否理解您的意思。如果您说他们可以在一个字段中写入两个值(例如test@testing.com, abc@123.com 用于电子邮件),那么您可以使用explode(',', $_POST['email']);。如果您想从POSTed 数据中创建新变量,您可以随时使用$name = $_POST['name'];
  • 非常感谢你用这些概念澄清了我的想法:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2011-03-16
  • 1970-01-01
  • 2013-07-19
  • 2020-01-17
  • 2014-08-13
  • 1970-01-01
相关资源
最近更新 更多