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

Posted

技术标签:

【中文标题】如何在注销时取消设置特定的 php 会话【英文标题】:How to unset a specific php session on logout 【发布时间】:2011-09-21 07:23:49 【问题描述】:

我有 2 个网站。

在一个网站上是这样的:

session_is_registered('site1sess')

在另一个方面是这样的:

session_is_registered('site2sess')

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

session_destroy(); 

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

【问题讨论】:

$_SESSION['site2sess']=null 应该这样做 unset($_SESSION['session_var']); 【参考方案1】:

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

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

请注意,session_is_registeredphp 版本 5.3.0 起已弃用。 See docs.

【讨论】:

不是session_unset($_SESSION['site1']);找不到unset(); session_unset() 将取消设置所有会话变量。【参考方案2】:

unset($_SESSION['site1']);之前放session_start()这样

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

【讨论】:

【参考方案3】:

当您退出 1

unset($_SESSION['site1sess']);

或者当你注销对方时

unset($_SESSION['site2sess']);

【讨论】:

【参考方案4】:

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

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

【讨论】:

session_unset() 不接受任何参数 - 它取消设置当前 $_SESSION 中的所有变量。 Reference.

以上是关于如何在注销时取消设置特定的 php 会话的主要内容,如果未能解决你的问题,请参考以下文章

当用户关闭浏览器而不单击注销时销毁或取消设置会话[重复]

如何在取消设置变量后修复会话未启动

为啥不会/如何对 PHP 会话变量进行排序而不是取消设置

如何使用php制作涉及会话cookie的注销页面?

在我单击注销按钮之前,如何在 php 中保持会话? [复制]

如何在 PHP 中取消设置会话数组