2

我是否在这里错过了一些我没有看到的会为该代码引发未定义索引错误的内容?在测试向$_POST['sub']未通过的functions.php添加代码时,它会在下面抛出未定义的索引错误,但是isset()针对完全相同的POST变量“sub”的相同测试在第494行上方执行了大约12次而没有抛出错误。我错过了什么?

来自 PHP 的错误

注意:未定义索引:/home/path/public_html/dtest/includes/functions.php 494 行中的子目录

第 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'];
}
4

2 回答 2

1

echo $_POST['sub'];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零件时,您正在尝试输出$_POST['sub']实际上未设置的内容(这此问题的实际来源

于 2014-03-28T19:09:54.007 回答
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
}
于 2014-03-28T19:13:32.743 回答