关闭浏览器 cookie未清除 导致session_id仍存在

多个独立的项目,共用一个域名,由于是老项目,默认采用的传统的session会话,访问每个独立的项目后台,由于采用统一域名,导致session记录的用户信息相互干扰,即在其中一个独立项目登录后台后,修改URL子级目录名,跳转到另外一个独立后台,由于之前已经记录session信息,导致另外一个项目也是从该session中读取数据,造成信息干扰,后来采用session_set_cookie_params 函数将 PHPSESSID 存储在不同的cookie_path中,解决了该问题。然而关闭浏览器 cookie并未清除,导致仍能获取session信息。

代码示例
$project_name = 'php_niubi';
session_set_cookie_params(3600, '/'.$project_name);
session_start();

关闭浏览器后 重新打开站点  cookie未清除 上次访问的PHPSESSID仍然存在
attachments-2018-10-ZoBqUs8T5bc57691a4158.png

请先 登录 后评论

最佳答案 2018-10-18 12:52

cookie的属性:

name:为一个cookie的名称。

value:为一个cookie的值。

domain:为可以访问此cookie的域名。

path:为可以访问此cookie的页面路径。 比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此cookie。

expires/Max-Age :为此cookie超时时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效。不设置的话默认值是Session,意思是cookie会和session一起失效。当浏览器关闭(不是浏览器标签页,而是整个浏览器) 后,此cookie失效。

Size:此cookie大小。

http:cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie。

secure:设置是否只能通过https来传递此条cookie

请先 登录 后评论

其它 0 个回答

  • 2 关注
  • 0 收藏,890 浏览
  • 码农 提出于 2018-10-16 13:26

相似问题