一个网站的登录/注销会影响同一服务器上的另一个网站

时间:2013-06-30 18:49:12

标签: php session

我正在为最后一年的大学项目开发​​两个动态网站。有时,当选项卡式浏览并同时在同一个浏览器中同时打开两个网站时,会发生以下情况。

我使用会话来跟踪登录,并在结束时销毁会话(注销)以注销系统;因为这个" session_destroy();"我在" localhost"上运行的另一个站点导致退出。

如何克服这个问题?

不建议具体销毁会话变量(即unset($_SESSION['usename'])。请建议一个合适的方式,我将非常感谢.☺

2 个答案:

答案 0 :(得分:3)

我建议使用前缀(我在我的网站中使用)并仅使用spec销毁会话。前缀

网站一

define("prefix", "firstweb_");
$_SESSION[prefix.'logged'] = true;

网站二

define("prefix", "secondweb_");
$_SESSION[prefix.'logged'] = true;

网站退出

destroy_session();

<强>功能

function destroy_session()
{
  foreach($_SESSION as $key => $value)
  {
    if(preg_match('/^'.prefix.'/', $value))
      unset($_SESSION['key']);
  }
}

答案 1 :(得分:3)

确保每个网站都正确设置了Cookie路径:

session_set_cookie_params(600,'/website1/','localhost');
session_start();

http://uk3.php.net/manual/en/function.session-set-cookie-params.php

会话将其路径参数默认为'/',因此在本地工作时需要覆盖。