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');
    
推荐问题
宣传栏