2012-11-14 32 views
3

可能重複:
(PHP) How to destroy the session cookie correctly?如何在php中銷燬session_id()?

我做在PHP購物車。我想過使用session_id()函數來識別單個用戶。保存產品訂單後,我需要銷燬session_id。我將如何做到這一點?

+0

如果我正確理解您的問題,您使用會話ID作爲您的數據庫中的鍵?如果是這樣,這可能是一個壞主意(tm) –

+0

您的標題中是否存在拼寫錯誤?什麼''session_id()'' –

回答

0

你不要說不清楚是什麼,但是這是你如何摧毀一個會話

unset($_SESSION['id']) 
+0

謝謝你的直接回應。 我使用以下語句爲會話生成唯一的ID。 $ sid = session_id(); 我需要在將訂單保存到數據庫後銷燬$ sid中的值。 – tanuja90

0

使用session_regenerate_id()。它將改變會話ID,將自動失效舊

對於一個良好的破壞,使用上登出了以下內容:

session_start(); 
session_regenerate_id(); 
session_destroy(); 
+0

謝謝你的迴應。讓我試試看。:) – tanuja90

0

使用會話ID不是去(雖然你可以使用session_regenerate_id()創建新的會話ID),因爲你失去的車的內容,如果用戶註銷(例如最好的方式,他將開始準備工作秩序,並希望完成它回家)。

好多了,靈活,更容易控制將創建表:

CREATE TABLE carts (
    `id` INT, 
    `user_id` INT 
) 
2

unset()功能是用來釋放指定的session變量:

if(isset($_SESSION['id'])) 
{ 
    unset($_SESSION['id']); 
} 

您也可以徹底摧毀會議通過呼叫session_destroy()功能:

session_destroy(); 
0

試試這個..

page1.php中

<?php 
    session_start(); 
    $_SESSION['userID'] = 123; 
?> 
<a href="logout.php">Logout</a> 

logout.php

<?php 
    session_start(); // start the session before using it 
    session_destroy(); // delete the current session 
    //$_SESSION['userID'] = 123; // <---- NO LONGER EXISTS 
    echo "Session destroyed!"; // inform the user of the changes 
?> 

或者您也可以有session_destroy();與您的代碼