继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP问题 —— 丢失SESSION

慕工程3455409
关注TA
已关注
手记 318
粉丝 78
获赞 293

1.1  丢失SESSION

1.1.1  现象

从PHP 5.5.9升级到PHP 5.5.12,应用执行登录操作后,后续页面没有记住登录成功的状态。

1.1.2  原因

经过跟踪代码,发现登录成功后已经将状态信息写入Session,但是页面重定向到首页后,Session不见了,导致后台以为是未登录用户访问。

Session为什么会不见?网上给出若干方法,但是仔细分析后均不适用本案例。因为同样的代码,在其它服务器上运行就是正常的,只有在本地升级后的服务器上不正常,因此应该是PHP升级导致。

从其它服务器上拷贝一份PHP.INI文件与本机的进行对比,发现如下参数:

session.save_path = "D:/PHPDevEnv/PHP 5.5.9/temp"

红色部分配置就是问题的关键所在。原来使用PHP 5.5.9时,PHP的目录名称中包含了版本号,后来升级到PHP 5.5.12,考虑到以后还有可能升级PHP,目录名称中带有版本号不利于后续升级,于是将目录中的版本号去掉了,同时修改了配置文件中的若干相关配置,但是没有完整搜索PHP 5.5.9这个字符串,导致上述参数没有修改。于是PHP在保存Session的时候就找不到路径。

1.1.3  解决

将上述参数修改为一个实际存在的路径,重启Apache服务器即可。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP