注意:未定义索引:名称

Posted

技术标签:

【中文标题】注意:未定义索引:名称【英文标题】: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 中的名称”。我该如何解决?

【问题讨论】:

PHP: "Notice: Undefined variable" and "Notice: Undefined index"的可能重复 尝试删除实际上不需要的backslash(\) 我删除了用户 'name' 而不是 \"name\"。但什么都没有改变。 @A-2-A 为什么不直接用纯 html 编写表单,然后在 结束表单标记之后启动 PHP?使代码更清晰。无需使用 echo 粘贴那么多 HTML,只需退出 PHP 并返回即可。 '
' @Qirel 同样的错误。
【参考方案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>";
    
?>

【讨论】:

以上是关于注意:未定义索引:名称的主要内容,如果未能解决你的问题,请参考以下文章

注意:未定义索引:图像 - 无法找到错误

“注意:未定义的变量”、“注意:未定义的索引”、“警告:未定义的数组键”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”、“警告:未定义的数组键”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”、“警告:未定义的数组键”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP