如何在注销时取消设置特定的php会话


How to unset a specific php session on logout

我有两个站点。

在一个网站上这是真的:

session_is_registered('site1sess')

在另一个例子中,这是真的:

session_is_registered('site2sess')

这些是我在登录时给用户的会话名称。我的问题是,当我从一个网站注销时,我也会在另一个网站上注销,因为我使用:

session_destroy(); 

从站点1或站点2中注销并删除所有会话变量的最佳方式是什么?非常感谢。

对特定于站点1或站点2的所有会话变量使用unset()

unset($_SESSION['site1']);
//or
unset($_SESSION['site2']);

正如您所知,session_is_registered从PHP 5.3.0版本开始就被弃用了。请参阅文档。

unset($_SESSION['site1']);之前将session_start()像这个一样放置

<?php
    session_start();
    unset($_SESSION['site1']);
?>

当您注销1个时

unset($_SESSION['site1sess']);

或者当您从其他注销时

unset($_SESSION['site2sess']);

您可以在不想注销已登录用户时取消设置会话。

if(isset($_GET['logout'])) {
   session_unset($_SESSION['user']);
}