用户的浏览器登录新版时,COOKIE 中的 PHPSESSID 被 改成了 _PHPSESSID ,造成 SESSION 无法跨页面传递,所以登录会失败。
暂且不管用户浏览器中的 SESSIONID 是被什么东东篡改的,想解决这个问题有2个办法.
办法一:修改session_name
直接修改 php.ini 找到 session.name = PHPSESSID , 改为 session.name = 自定义名称
$_COOKIE['自定义名称']
办法二:自动匹配cookie
在所有使用SESSION的页面,调用session_start();语句之前加入以下代码
_COOKIE[_COOKIE as val)
{
key); //转换为大写
//如果包含 session_name 关键字则把该字串当做 sessionid 启用
if(strpos(session_name))//这里注意哪个的范围更广一些,一般session_name默认PHPSESSID,cookie中变化的话,这strpos(session_name(),_COOKIE[_COOKIE[$session_name]);//获取新的 session_id
}
session_start();