警告添加值会话数组

时间:2014-04-16 02:53:49

标签: php arrays session cart

我正在开发购物车系统,当我第一次尝试添加产品时,它总是会给我一个警告,说明以下内容:

注意:未定义的索引:第9行的... / cart.php中的2

索引:2是id_product

$product=(isset($_SESSION['cart']) and $_SESSION['cart']!="") ? $_SESSION['cart'] : "";

if(isset($_POST['id_product'])){
        $product= $_POST['id_product'];
        $quantity= $_POST['qty'];
        $_SESSION['cart'][$product]+=$quantity;
    }

它正在添加值,但是在我刷新将出现在foreach表上的页面之后。我收到的值是正确的。

我在登录另一页后定义默认值。

$_SESSION['car'][0] = 0;

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

在语句$_SESSION['cart'][$product]+=$quantity;中您正在使用+ =,这就是造成问题的原因。

当您第一次添加产品时,它会抛出错误,后续工作正常。

要解决此问题,请执行以下操作。

$quantity= $_POST['qty'];
if(!empty($_SESSION['cart'][$product])){
     $quantity = $quantity + $_SESSION['cart'][$product];
}
$_SESSION['cart'][$product] = $quantity;

答案 1 :(得分:1)

您好,您需要将您的id_product设为有效变量

$product=(isset($_SESSION['cart']) and $_SESSION['cart']!="") ? $_SESSION['cart'] : "";

if(isset($_POST['id_product'])){
    $product= $_POST['id_product'];
    $quantity= $_POST['qty'];

    if(!isset($_SESSION['cart'][$product])) {
        $_SESSION['cart'][$product] = $quantity;
    } 
    else { 
        $_SESSION['cart'][$product]+=$quantity;
    }
}