我在这里错过了一些我没有看到会为此代码抛出未定义索引错误的内容吗?在测试添加代码到functions.php时,$_POST['sub']
没有被传递,它会抛出下面的未定义索引错误,但是对于完全相同的POST变量" sub&#34进行相同的isset()
测试;在494行以上执行大约12次而不会抛出错误。我错过了什么?
来自PHP的错误
注意:未定义的索引:sub in 第494行/home/path/public_html/dtest/includes/functions.php
第494行代码
if (isset($_POST['sub']) && $_POST['sub'] == "ritem") {
$id = $_POST['ritemid'];
unset($_SESSION['cart']['items'][$id]);
header("Location: ".$_SERVER['HTTP_REFERER']."");
die();
} else {
echo $_POST['sub'];
}
答案 0 :(得分:1)
从负责此echo $_POST['sub'];
的{{1}}部分中删除else
,并替换为Undefined index notice
声明。
应该是这样的..
echo
那是因为......当<?php
if (isset($_POST['sub']) && $_POST['sub']=="ritem") {
$id=$_POST['ritemid'];
unset ($_SESSION['cart']['items'][$id]);
header("Location: ".$_SERVER['HTTP_REFERER']."");die();}
else
{
echo "The subject is not set";
}
失败意味着if
未设置时,所以当涉及到$_POST['sub']
部分时,您正在尝试输出else
实际未设置(这是此问题的实际来源)
答案 1 :(得分:0)
因为其他情况
if (isset($_POST['sub']) && $_POST['sub']=="ritem") {
$id=$_POST['ritemid'];
unset ($_SESSION['cart']['items'][$id]);
header("Location: ".$_SERVER['HTTP_REFERER']."");
die();
} else if(isset($_POST['sub'])) {
echo $_POST['sub'];
} else {
// Do something else here
}