php中二级域名跳转session丢失

本人用php开发网站;在实现一级域名与二级域名之间跳转时;session会丢失;请问这是什么问题?怎么解决

阅读 3.5k
1 个回答

这个问题不是session丢失,而是一个域名下的所有子域名会话共享的问题。

由于后端PHP设置session存储数据以后,为了维持会话状态,响应头中会写入sessionid到cookie中存储,但是默认的cookie Domain属性是当前域名,所以两个域名就有两个sessionid

如果你的登录操作在login.domain.com中成功后user_id写入session,默认的cookie Domain为login.domain.com,而你在www.domain.com想取到login下存储的user_id,解决办法很简单,如下即可

  1. php.ini中全局配置

    session.cookie_domain = .domain.com
    
  2. ini_set函数设置

    ini_set('session.cookie_domain','.domain.com');
    
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏