一个很囧的PHP SESSION 失效的问题 [疑难杂症]

post by 朦朧中的罪惡 / 2009-8-13 18:44 Thursday

今天emlog群里面有用户说有个博客不能留言,正确填写了验证码之后emlog提示验证码失效.要到网址自己尝试了一下,果然如此.

emlog的验证码程序验证逻辑是绝对没有问题的,那么导致这个情况的只可能是该服务器PHP的Session出现了问题.

首先检查该服务器的环境,http抓包显示是 IIS 6.0 + PHP 5.2.0 RC4

点击查看原图

看到PHP 5.2.0 RC,我首先考虑是不是这个版本的PHP存在Bug.去PHP官网查询后发现该版本不存在Session的Bug.

既然不是PHP的问题那么再检查Cookie的状态.

用FireBug查看该站点的Cookie信息,看到PHP的Session所属的Cookie存在并且有值.没有问题.

这时我看到了该Cookie的Path属性,当场就囧掉了...

点击查看原图

为啥囧,Cookie的Path居然被设为了C:\Windows\temp.

很显然这个服务器的管理员把php.ini中的Session配置属性session.cookie_pathsession.save_path给了弄混了,把php临时文件的路径赋给了session.cookie_path,而这样的结果就是Cookie失效导致PHP无法获得SessionID.验证码自然就成了摆设了...

 

标签: php 原创

« 我正在使用的FireFox扩展 | Windows下自定义php.ini的位置»

引用:

评论

  1. 棺材中的尘埃 Says:

    来求教下。我的网站就是无法保存用户的评论基础资料,包括昵称,邮箱,网址,第二次访问又要重新输入!不知道跟上面提到的这个问题是否有关系!希望能帮帮忙!别拿给我看一下
    www.dustmeida.net
    万分感谢!

    博主回复:你给的网址我打不开

  2. Kiya Says:

    博主,请问为什么我的FireBUG里面没有看Cookie和Session的,请指教

    博主回复:你需要安装Firecookie扩展

  3. rzhome Says:

    果然很囧。。。

发表评论