3

可能重复:
(PHP)如何正确销毁会话cookie?

我正在用 PHP 做一个购物车。我session_id()用来识别个人用户。保存产品订单后,我需要销毁session_id. 我将如何做到这一点?

4

6 回答 6

1

unset()函数用于释放指定的会话变量:

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

您还可以通过调用session_destroy()函数完全销毁会话:

session_destroy();
于 2012-11-14T07:59:34.460 回答
1

使用session_regenerate_id(). 它将更改会话 id,自动使旧的无效

为了进行良好的销毁,请在注销时使用以下命令:

session_start();
session_regenerate_id();
session_destroy();
于 2012-11-14T07:53:54.567 回答
0

使用会话 ID 不是最好的方法(尽管您可以使用session_regenerate_id()创建新的会话 ID),因为如果用户注销,您会丢失购物车的内容(例如,他将开始准备工作订单并希望将其完成回家)。

更好、更灵活、更容易控制的是创建表:

CREATE TABLE carts (
    `id` INT,
    `user_id` INT
)
于 2012-11-14T07:57:55.487 回答
0

不知道你的意思,但这就是你破坏会话的方式

 unset( $_SESSION['id'] )
于 2012-11-14T07:53:24.443 回答
0

利用

session_regenerate_id();

反而。它将重新生成会话 ID。

查看更多信息: http: //php.net/manual/en/function.session-regenerate-id.php

于 2012-11-14T07:54:05.440 回答
0

试试这个。。

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(); 在你的代码中

于 2012-11-14T08:35:15.087 回答