可能重复:
(PHP)如何正确销毁会话cookie?
我正在用 PHP 做一个购物车。我session_id()
用来识别个人用户。保存产品订单后,我需要销毁session_id
. 我将如何做到这一点?
可能重复:
(PHP)如何正确销毁会话cookie?
我正在用 PHP 做一个购物车。我session_id()
用来识别个人用户。保存产品订单后,我需要销毁session_id
. 我将如何做到这一点?
该unset()
函数用于释放指定的会话变量:
if(isset($_SESSION['id']))
{
unset($_SESSION['id']);
}
您还可以通过调用session_destroy()
函数完全销毁会话:
session_destroy();
使用session_regenerate_id()
. 它将更改会话 id,自动使旧的无效
为了进行良好的销毁,请在注销时使用以下命令:
session_start();
session_regenerate_id();
session_destroy();
使用会话 ID 不是最好的方法(尽管您可以使用session_regenerate_id()
创建新的会话 ID),因为如果用户注销,您会丢失购物车的内容(例如,他将开始准备工作订单并希望将其完成回家)。
更好、更灵活、更容易控制的是创建表:
CREATE TABLE carts (
`id` INT,
`user_id` INT
)
不知道你的意思,但这就是你破坏会话的方式
unset( $_SESSION['id'] )
利用
session_regenerate_id();
反而。它将重新生成会话 ID。
查看更多信息: http: //php.net/manual/en/function.session-regenerate-id.php
试试这个。。
page1.php
<?php
session_start();
$_SESSION['userID'] = 123;
?>
<a href="logout.php">Logout</a>
注销.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(); 在你的代码中