我正在为最后一年的大学项目开发两个动态网站。有时,在标签式浏览和同时在同一个浏览器中打开两个网站时,会发生以下情况。
我使用会话来跟踪登录,并在最后(注销)销毁会话以注销系统;因为这个“session_destroy();” 我在“localhost”上运行的另一个站点导致注销。
如何克服这个问题?
不建议专门破坏会话变量(即unset($_SESSION['usename'])
。请提出适当的方法,我将非常感谢。☺</p>
我建议使用前缀(我在我的网站中使用)并仅使用规范销毁会话。字首
网站一
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']);
}
}
确保每个网站都正确设置了 cookie 路径:
session_set_cookie_params(600,'/website1/','localhost');
session_start();
http://uk3.php.net/manual/en/function.session-set-cookie-params.php
会话会将其路径参数默认为“/”,因此在本地工作时需要此覆盖。