设置值时$ _Session变量出现问题

时间:2013-09-06 14:12:48

标签: php session session-variables

我正在创建一个购物车应用程序,但在测试$ _Session ['cart'] [$ product_ID]时出现问题,它没有根据我从之前的url查询调用的$ action变量设置值页面,当我激活查询任何操作时,相应的switch语句没有对Session变量进行任何类型的更改。 代码列在下面

session_start();
include "db-class.php";
include "functions.php";
$product_ID=$_GET["id"];
$action=$_GET["action"];
$_SESSIONS['cart'][$product_ID]=0;

/////////// testing session variable and action at start/////////
echo "<br>SESSION VAR BEFORE ACTION=".$_SESSIONS['cart'][$product_ID];
echo "<br>ACTION TO TAKE= ".$action."<br>";
//////////end initial testing/////////

$productExisits=productExists($product_ID);
if($product_ID && !$productExisits)
{
die("PRODUCT DOESNOT EXIST");
}
                    switch($action)
                    {
                    case "add":
                    $_SESSION['cart'][$product_ID]++;
                    break;

                    case "remove":
                    if($_SESSION['cart'][$product_ID]>0)
                    {
                    $_SESSION['cart'][$product_ID]--;
                    }

                    if($_SESSION['cart'][$product_ID]=0)
                    {
                    unset($_SESSION['cart'][$product_ID]);
                    }
                    break;

case "empty":
unset($_SESSION['cart'][$product_ID]);
break;
}

/////////////// testing session variable after action/////////
if(!isset($_SESSION['cart'][$product_ID]))
{
echo "<br>THE CART IS EMPTY NOW<br>";
}
echo "SESSION ID IS= ".$_SESSIONS['cart'][$product_ID];

?>

但是我想每次执行某些操作时都要更改变量值

idex.html是

<?php
//session_start();

?>
<html>
<head>
</head>
<body>
<div>
<image src="img/b_guitar.jpg" height="100 px" width="270 px" border= "2 px">
<table>
<tr>
<td>
<a href="cart.php?action=add&id=1">add to cart</a> ||<br>
<td>
<a href="cart.php?action=remove&id=1">remove from cart</a> ||<br>
<td>
<a href="cart.php?action=empty&id=1">empty cart</a><br>
</tr>
</table>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

为什么要改变?每次拨打购物车更新代码时,您都会在上面的代码段中的第6行重置购物车数量:

$_SESSIONS['cart'][$product_ID]=0;

当代码启动时,您最终会在购物车中找到0件商品,无论您以后的代码如何更改该数量。