会话销毁购物车应用程序中的选项

时间:2013-08-27 07:26:13

标签: php session shopping-cart

大家好我正在开发一个没有登录和注销选项的Web应用程序。这是一个电子商务网站。因此,为了保持对不同产品的订购,我将在会话中保存订单数据。但即使在我关闭浏览器或标签后,会话也没有被破坏。我没有明确地破坏如何在这些情况下破坏会话。

请提供一些见解。 PHP开发的新手。

session_start();
function addtocart($productid,$quantity,$amount){

    if($productid === "" or $quantity<1) return;

    if(is_array($_SESSION['cart'])){
        if(product_exists($productid)) return;
        $max=count($_SESSION['cart']);
        $_SESSION['cart'][$max]['productid']=$productid;
        $_SESSION['cart'][$max]['quantity']=$quantity;
        $_SESSION['cart'][$max]['amount'] =$amount;
    }
    else{
        $_SESSION['cart']=array();
        $_SESSION['cart'][0]['productid']=$productid;
        $_SESSION['cart'][0]['quantity']=$quantity;
        $_SESSION['cart'][0]['amount']=$amount;
    }
}

function product_exists($pid){

$max=count($_SESSION['cart']);
$flag=0;
for($i=0;$i<$max;$i++){
    if($pid === $_SESSION['cart'][$i]['productid']){
        $flag=1;
        break;
    }
}
return $flag;

}

2 个答案:

答案 0 :(得分:0)

我不确定这一点,但我认为会话变量存储在cookie中。这可能是您关闭浏览器后会话仍然存在的原因。

查看this链接。您可以使用session_unset()

释放会话变量

答案 1 :(得分:0)

只需使用session_destroy(); 这肯定会破坏所有存储的会话

你可以像这样使用它

if(isset($_POST['destroy_btn']))
    {
     session_destroy();
     header('location: homepage.php'); 
     //redirect or refresh it after destroying the sessions
    }

此外,浏览器还有一个名为会话还原的选项,可在您重新打开浏览器时恢复上次会话。只需关闭此选项。