2013-08-27 2 views
0

Привет всем Я разрабатываю веб-приложение, которое не имеет параметров входа и выхода. Это сайт электронной торговли. Поэтому, чтобы сохранить упорядочение различных продуктов, я сохраняю данные заказа в сеансе. Но даже после того, как я закрыл браузер или вкладку, сеанс не уничтожает. Я не уничтожаю явное уничтожение сеанса в этих ситуациях.Session Destroy options in shopping cart application

Просьба дать некоторые сведения. Новое для разработки 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

david, пожалуйста, проверьте – user2362946

ответ

0

Я не уверен в этом, но я думаю, что переменные сессии сохраняются в куки. Это может быть причиной того, что ваш сеанс все еще присутствует после закрытия браузера.

Посмотрите на ссылку this. Вы можете освободить свои переменные сессии с session_unset()

0

просто использовать session_destroy(); это, конечно, уничтожить все сохраненные сеансы

вы можете использовать его как этот

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

А также, браузеры имеют опцию под названием сеанс восстановления , который восстанавливает ваши последние сеансы при повторном открытии вашего браузера. просто отключите эту опцию.

+0

Мне нужно вызвать этот session_destroy(), только когда табуляция закрывается или браузер закрывается. – user2362946

+0

ах. Я думаю, вам нужно отключить функцию «восстановления сеанса» вашего браузера. попробуй. –

Смежные вопросы