0

我在这里有这段代码,在脚本的某个地方我有代码的第二部分。当我运行脚本时,它会显示一条通知:

注意:未定义变量:第 215 行 C:\xampp\htdocs\BB\shoppingcart.php 中的 msg
注意:未定义索引:第 218 行 C:\xampp\htdocs\BB\shoppingcart.php 中的购物车

以下是代码:

if(isset($_REQUEST['command']) && $_REQUEST['command']=='add' && $_REQUEST['productid']>0)

{
    remove_product($_REQUEST['pid']);
}
else if(isset ($_REQUEST['command'])=='clear'){
    unset($_SESSION['cart']);
}
else if(isset ($_REQUEST['command'])=='update'){
    $max=count($_SESSION['cart']);
    for($i=0;$i<$max;$i++){
        $pid=$_SESSION['cart'][$i]['productid'];
        $q=intval($_REQUEST['product'.$pid]);
        if($q>0 && $q<=999){
            $_SESSION['cart'][$i]['qty']=$q;
        }
        else{
            $msg='Some proudcts not updated!';
        }
    }
}

这是第 215 和 218 行:

<div style="color:#F00"><?php  echo $msg?></div>

if(is_array($_SESSION['cart'])){

我找不到问题,我在网上搜索了几个小时。谢谢

4

3 回答 3

1

首先在代码的第一部分将上面的 $msg 定义为 nul 即 $msg = null 或者您可以使用 echo isset($msg) 直接调用?$味精:'';

它将解决您的第一行错误

然后你一步一步调试你的代码,为什么 $msg 不包含任何值改变这一行 else if(isset ($_REQUEST['command'])=='clear') 到 else if(isset ($_REQUEST[ 'command']) && ($_REQUEST['command'] == 'clear'))

是否可以解决您的问题只需检查一次然后返回,如果没有,我们可以通过另一种方式找到它

于 2013-02-10T08:22:55.523 回答
1

您仅在某些条件下设置 $_SESSION['cart'] 和 $msg,因此如果这些条件不成立,则它们是未定义的。您不能在代码中使用未定义的变量或索引。将第 215 和 218 行更改为以下内容,您将不会遇到问题:

<div style="color:#F00"><?php  if (isset($msg)) {echo $msg;} ?></div>

if(isset($_SESSION['cart']) && is_array($_SESSION['cart'])){
于 2013-02-10T08:24:35.450 回答
0

摆脱:

注意:未定义变量:第 215 行 C:\xampp\htdocs\BB\shoppingcart.php 中的 msg

将此指令放在脚本的开头,以使您的变量始终可用:

$msg = '';

对于通知:

注意:未定义索引:第 218 行 C:\xampp\htdocs\BB\shoppingcart.php 中的购物车

尝试把 session_start(); 脚本开头的说明。

于 2013-02-10T08:18:46.573 回答