PHP Undefined Index with $_POST [重复]
在 PHP 中,访问未设置的数组元素会触发运行时错误,导致“未定义索引”通知。在测试表单中的空变量(例如用户登录脚本)时,通常会发生这种情况。
您的简化代码演示了该问题:
$user = $_POST["username"];
if($user != null)
{
echo $user;
echo " is your username";
}
else
{
echo "no username supplied";
}
虽然当存在用户名时代码可以按预期工作,但当没有提供用户名时,它会失败并显示错误“未定义索引:用户名”。出现这种情况是因为在未提交数据时 $_POST 没有“用户名”键。
要解决此问题,请在访问变量或数组元素之前使用 isset() 运算符检查其是否存在。这样,在尝试检索值之前就可以防止错误。
if (isset($_POST["username"]))
{
$user = $_POST["username"];
echo "$user is your username";
}
else
{
$user = null;
echo "no username supplied";
}
在此更新的代码中,isset() 在将其值分配给 $user 之前确保 $_POST 中存在“username”键。这消除了运行时错误,并允许您正确处理空用户名的情况。
值得注意的是,缺少数组元素是轻微的运行时错误(E_NOTICE 级别)。忽略通知可以让您的代码按预期执行,但这被认为是不好的做法,特别是在生产环境中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3