注销时未设置会话问题


Unset session issue when logout

我创建了一个具有前端和后端面板的网站。在两个面板上,我都创建了登录区域,前端用于用户登录,后端用于管理员登录,可以管理前端用户的所有活动。我还有两个不同的登录表,用户的登录详细信息和管理员的登录详细信息。当我在两个不同的选项卡中同时登录两个面板时,它工作正常。在这种情况下,将创建两个不同的会话 $_SESSION['adminName'] 和 $_SESSION['用户名'],并且两者都在访问其分配的数据。但是当我从面板中的任何人注销时,就会出现问题。当我从前端注销时,后端管理员通过销毁网站的所有会话来自动注销。但是我有两个不同的注销功能,就像两个登录功能一样。

用户的注销函数包含以下代码。

   session_start();
   unset($_SESSION);
   session_destroy();
    echo '<script>
         window.location.href = "'.$site_path.'";
        </script>';     

我希望这两个注销功能仅适用于他们的面板。 它们不会破坏其他面板的会话。

任何人都知道如何解决这个问题以及我做错了什么。谢谢。

如果您删除session_destroy()并使未设置更具体,请说unset($_SESSION['userName'])从主站点注销,并在要将其从管理面板中注销时unset($_SESSION['adminName'])。绝对不建议使用unset($_SESSION)

只要两个面板都需要每个会话变量,您应该没问题。

不建议以这种方式取消设置会话变量。
使用 session_unset(),请参阅 http://php.net/manual/en/function.session-unset.php
除此之外,您不希望会话仍然存在于用户计算机上,为此使用 session_destroy()。session_unset() 只是清除会话以供使用。