【问题标题】:Notice: Undefined index: name注意:未定义索引:名称
【发布时间】:2016-05-25 07:39:41
【问题描述】:

我刚刚使用 PHP 7 安装了 XAMPP。我之前有一个脚本可以运行,但安装后出现错误。我将展示一个也不起作用的示例。问题出在 $_POST 中,我认为可能是因为 XAMPP 或 PHP 中的配置。

<?php 
echo "<form action='check.php' method=\"post\"> 
<input type=\"text\" name=\"name\" >
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
if (isset($_POST['submit'])){echo $_POST['name'];}
if (isset($_POST['name'])) var_dump($_POST['name']);
?>

此代码不返回任何内容,但如果我只添加 echo $_POST['name'];,它将返回错误“注意:未定义的索引:第 13 行 D:\XAMPP\php\www\index.php 中的名称”。我该如何解决?

【问题讨论】:

  • 尝试删除实际上不需要的backslash(\)
  • 我删除了用户 'name' 而不是 \"name\"。但什么都没有改变。 @A-2-A
  • 为什么不直接用纯 HTML 编写表单,然后在 结束表单标记之后启动 PHP?使代码更清晰。无需使用 echo 粘贴那么多 HTML,只需退出 PHP 并返回即可。
  • '
    ' @Qirel 同样的错误。

标签: php html post xampp http-post


【解决方案1】:

@hherger 我删除了 xampp 服务器并使用 php 5.6 安装了 wampserver。现在它显示另一个错误。

已弃用:自动填充 $HTTP_RAW_POST_DATA 已弃用,并将在未来版本中删除。为避免此警告,请在 php.ini 中将“always_populate_raw_post_data”设置为“-1”,并改用 php://input 流。在第 0 行的未知中

警告:无法修改标头信息 - 标头已在第 0 行的未知中发送

【讨论】:

    【解决方案2】:

    您似乎在同一个脚本中拥有所有 REQUEST_METHOD 的代码。
    没关系,但是您必须区分您的反应方式:

    • 要么发送表单供用户填写和传输,
    • 或解释表单传输的数据。

    试试你的代码:

    <?php
        // Check if the form has been transmitted or not
        if ($_SERVER['REQUEST_METHOD']=='POST') {
            // A form was transmitted
            if (isset($_POST['name'])) var_dump($_POST['name']);
        } else {
            // Send the form out so the user can transmit it
            echo "<form action='check.php' method=\"post\"> 
    <input type=\"text\" name=\"name\" >
    <input type=\"submit\" name=\"submit\" value=\"ok\">
    </form>";
        }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2018-03-17
      • 2015-12-01
      • 2013-11-27
      • 2015-06-02
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多