0

大家好,我正在开发一个没有登录和注销选项的 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;

}

4

2 回答 2

0

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

你可以像这样使用它

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

此外,浏览器还有一个称为会话恢复的选项,它可以在您重新打开浏览器时恢复您的最后一个会话。只需关闭此选项。

于 2013-08-27T07:49:26.583 回答
0

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

看看这个链接。您可以使用释放会话变量session_unset()

于 2013-08-27T07:34:54.167 回答