ATM,我正在测试我的购物车。当我加载一个带有要添加到购物车的产品的新页面时,他们添加了添加正常但我也得到了错误,例如:
注意:未定义的索引:
中的cart_2525是与产品相关联的索引。
if (isset($_GET['add'])) {
$_SESSION['cart_'.(int)$_GET['add']]+=1;
}
foreach($_SESSION as $name => $value) {
if ($value>0){
if (substr($name,0,5)=='cart_') {
$name = substr($name, 5, (strlen($name)-5));
echo $name.'<br />';
}
任何有用的提示都会很棒
答案 0 :(得分:3)
以这种方式尝试:
$key = 'cart_' . $_GET['add'];
$_SESSION[$key] = isset($_SESSION[$key]) ? $_SESSION[$key] + 1 : 1;
答案 1 :(得分:1)
而不是使用cart_{index}
为什么不让数组成为多个维度?然后你的foreach
循环会简单得多。您可能还希望拥有添加和删除项目的功能或方法,这样您就不必每次都进行相同的测试。
function add_to_cart($index, $amount) {
if (!isset($_SESSION['cart'][$index])) {
$_SESSION['cart'][$index] = 0;
}
$_SESSION['cart'][$index] += $amount;
}
答案 2 :(得分:0)
$_SESSION['cart_'.(int)$_GET['add']]+=1;
$_SESSION['cart_'.(int)$_GET['add']] = **$_SESSION['cart_'.(int)$_GET['add']]** + 1;
所以第一次它将是未定义的,所以
if (!isset($_SESSION['cart_'.(int)$_GET['add']])) {
$_SESSION['cart_'.(int)$_GET['add'] = 1;
} else {
$_SESSION['cart_'.(int)$_GET['add']]+=1;
}