思路话语

。Arlen:思想有多远你就能走多远...

未设置时间导致cookie写入马上过期引起的问题

今天发现新web上出口页面打不开,httpwatch看到是oa登陆引起的问题:

 

现象解释:用户登陆,我们的程序请求oapassport验证,Oa验证通过后给我们的url加上ticket串,我们的程序截出ticket并尝试写入cookie(setcookie的时候写失败了(后面发现其实并非如此)),此时程序重新请求idc/idc_exit,验证模块尝试从cookie中获取ticket串,获取失败!于是再次请求oapassport……一直纠结在这块

 

原来的代码是:

setcookie('ticket', $value, time()+7200);

小童改成调另外一个helper类中的函数后,竟然神奇的好了!

我仔细琢磨了下,发现这个方法和直接调setcookie的效果是一样的,最终还是调setcookie

 

困惑中……

 

于是不断的加日志打日志,查日志

最终惊喜的发现,生成的日志文件竟然是

生成的日志文件竟然是69日的!原来这台服务器的时间是69号啊!

 

马上查看服务器时间:

果然是69日!

 

再回过头来想之前的写cookie为啥不成功就明白了:因为一写进去就过期了……

 

可是为啥小童改调的另一个方法却可以呢?仔细查看后,发现这个方法里将expire加了两次time(),自然会大过当前时间(617)

这就是为什么原来的方法不成,小童改调helper类里的这个方法后就可以的原因!

 

最根本的解决办法:修改系统时间

搞定了!

posted on 2010-06-17 20:25  Arlen  阅读(270)  评论(0编辑  收藏  举报

导航