我正在创建一个购物车应用程序,但在测试$ _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>
答案 0 :(得分:1)
为什么要改变?每次拨打购物车更新代码时,您都会在上面的代码段中的第6行重置购物车数量:
$_SESSIONS['cart'][$product_ID]=0;
当代码启动时,您最终会在购物车中找到0件商品,无论您以后的代码如何更改该数量。