大家好我正在开发一个没有登录和注销选项的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;
}
答案 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
}
此外,浏览器还有一个名为会话还原的选项,可在您重新打开浏览器时恢复上次会话。只需关闭此选项。