注意:未定义索引:名称
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