PHP,SESSION数组没有正确更新

时间:2013-03-23 05:07:28

标签: php session get

好的,我正在努力编写这个shoppingcart.php代码。我会试着把它分解,这很容易理解:

  • 首先,我使用$_GET从单独的itemID获取store.php和数量 SESSION档案。
  • 我初始化$_SESSION['cart'] = array();数组,如下所示:itemID
  • 我检查数量和cart.php是否有效以及是否有效 将它们添加到会话数组中。
  • 我在表格中显示会话数组中的所有内容。

我遇到两个问题。

首先,如果我返回并选择其他项目,会话数组不会保存旧项目。**

其次,如果我直接将"view my cart"文件转到store.php,则表示根本没有任何内容。如果我在{{1}}填写表单并点击提交,它只显示一些内容。然后它只显示一件事。

以下是 the code cart.php和store.php ):

感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

我认为这样做可能有所帮助:     

$product_id = $_GET['id']; //the product id from the URL
$action = $_GET['action']; //the action from the URL

//if there is an product_id and that product_id doesn't exist display an error message
if($product_id && !productExists($product_id)) {
    die("Error. Product Doesn't Exist");
}

switch($action) { //decide what to do

    case "add":
        $_SESSION['cart'][$product_id]++; //add one to the quantity of the product with id $product_id
    break;

    case "remove":
        $_SESSION['cart'][$product_id]--; //remove one from the quantity of the product with id $product_id
        if($_SESSION['cart'][$product_id] == 0) unset($_SESSION['cart'][$product_id]); //if the quantity is zero, remove it completely (using the 'unset' function) - otherwise is will show zero, then -1, -2 etc when the user keeps removing items.
    break;

    case "empty":
        unset($_SESSION['cart']); //unset the whole cart, i.e. empty the cart.
    break;

}

?>

来自here

答案 1 :(得分:0)

可能回答您的问题

第一:    保持所有值使用$ _SESSION ['cart'] []而不是$ _SESSION ['cart'];使它多维,否则它将覆盖你的值

第二:    cart.php将如何显示项目?       你正在初始化$ _SESSION ['cart'] = array();     在页面的开头..它正在清空你的旧价值..如果你直接来到cart.php

希望它可以帮到你