销毁所有会话,但一个

时间:2015-01-22 17:34:51

标签: php session-cookies

我和这个家伙有同样的问题:Destroy session, but keep one variable set(已解决)

我正在尝试销毁/取消设置除用户注销时名为“id”的一个会话之外的所有会话。 我不想手动取消设置每个会话,因为我有很多会话。

这是我的logout.php

<?php
session_start();
foreach($_SESSION as $key=>$value) {
if($key !== "id") {
     unset($_SESSION[$key]);
}
}
header("Location: login.php");
exit;
?>

此代码当前取消设置所有会话,但不保留名为ID的会话。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

您可以重新分配$_SESSION['id'],而不是删除所有其他内容。

一个小技巧:)

<?php
session_start();
$tmp = $_SESSION['id'];
session_unset();
$_SESSION['id'] = $tmp;

header("Location: login.php");
exit;
?>

答案 1 :(得分:0)

您也可以这样做:

$keep_alive = $_SESSION['id'];

销毁所有会话:

session_start();
session_destroy();

再次设置会话:

session_start();
$_SESSION['id'] = $keep_alive;