今天遇到的是一个怪问题 客户的电脑不能保存session
在我们这里的电脑能用但是到了客户的电脑中不能登录了,真是一个怪问题
普及session信息
Session是存放在服务器端文件中的东西,或者内存中的
每个客户端的需要区分他的值的域,这个是根据他的sessionid区分的,每一次回话,对应一个sessionid
Sessionid 存放在客户电脑的 cookie中
他的存放方式是
键:PHPSESSION( 这个根据配置文件中的来看,也可以手动改的)
值:一个很长的字符串如: d54242250d8eca60da2bb54718e900d3
主要问题是出在哪里呢?
我在程序中把cookie的值打出来了,一看发现,在我们的电脑上的是cookie中是PHPSESSION,但是在客户的电脑上根本没有这个键,而是 ,_PHPSESSID 有这个键,好像存的值为也是sessionid
正确的解决方法:
在admin.php中加上
if(isset($_COOKIE[',_PHPSESSID'])) session_id($_COOKIE[',_PHPSESSID']);
这样就好了,他就能找到对应的sessionid了
解决方法二:
还是在admin.php中不要加上面的一句了,加下面的一句
if(isset($_COOKIE[',_PHPSESSID']))$_COOKIE['PHPSESSID']=$_COOKIE[',_PHPSESSID'];
其实两个的道理都是一样的,
第一种直接把值赋给 sessionid
第二种因为是他找的是cookie[“phpsession”],现在没有,给他赋值
Session.name 可以再php.ini文件中配置,也可以在程序中手动配置的