再谈Cookie在使用时无法取值的故障分析
最近顺利开发完一个用户的网站后,就到了用户验收的日子,公司派我前往用户所在地教用户使用网站系统,结果发生了一件出乎意料的事情……
后台用户名密码死活登录不进去,总是报尚未登录,请重新登录的提示,我一下毛了……
通过FTP登录到空间上查看代码,也没有发现什么异常,因为飞驰CMS的代码我太熟悉了,细细看过一编又看了一编,没有任何问题呀,为啥就登录不进去呢?
我马上随便输入了一组用户名密码,结果系统报“用户名密码错”,显然第一次不是我写错密码,因为随便输入的密码会报错;那这是哪里的问题呢?我郁闷了……西安域名注册中心原创文章 如需转载请保留西安域名注册 http://www.fnc.cn/
我打开了我的笔记本,准备搭一个环境本地测试一下,我搭环境之前用我的笔记本试探性在登录了一下,天哪!居然登录进去了……
我让用户看,在我的电脑上都能登录,我马上要 用户在打开一台计算机测试,结果另外的电脑也能顺利登录后台,为啥就这个电脑不能登录呢?
我开始逐一排查问题,防火墙、杀毒软件、磁盘权限一一检查,都没问题,用户也一头雾水……
最后在征得用户的同意下,豁出去了,做系统!
结果系统做好以后,还是不能登录这个网站,于是我写了一段小的跟踪程序,跟踪用户名密码输入以后为何被踢出,不让进系统……
结果跟踪程序发现,用户名密码验证通过后,系统写入本地Cookie正常,但在后台系统进入后判断Cookie是否存在时,报错!Cookies消失了……(西安网站制作中心 http://www.xae.cn/)
奇怪,这是为什么呢,为什么刚刚写入的Cookie瞬间就消失了呢?这让我百思不得其解,但这在别的计算机上都是正常的,显然问题还是在这个计算机上……
到底问题出在哪儿呢,用户得知这是自己计算机问题的时候在没有为难我们,支付完尾款以后,我对这个蹊跷的问题依然很有兴趣,就和用户 一起研究这个问题。
系统做了N遍,问题依旧,浏览器换了一个又一个,问题依旧,最后换了一个火狐的浏览器,问题竟然奇迹般的解决了,用户可以顺利的登录网站后台……
晕,这倒是是为啥呢?我依然不甘心,继续寻找症结……
整理一下思路:Cookie是缓存在本地的,Cookies写入失败只有下面这几种可能:
1、本地IE权限或者磁盘权限问题;
验证方法:登录163信箱,退出后关闭IE,在次进入163信箱的界面,发现上次登录的用户名已经被输入好了,证明本地计算机Cookies写入没问题;
2、既然上面的办法证明其他网站往本地计算机写入和读取Cookies都没问题,则证明本地计算机的配置环境都没问题;所以问题还是出在我们网站;那为什么其他计算机登录我们网站都没问题?3、了解Cookie的工作机制,Cookies写入后有一个生命周期,如果生命周期过了以后则Cookies失效;
现在的问题明显是因为Cookies生命周期瞬间失效,是什么问题导致这个Cookies瞬间失效呢?偏偏是这个计算机的Cookies生命周期瞬间失效,答案只有一个——控制Cookie生命周期的只有时间,如果出问题是不是本地时间有问题呢?(西安域名注册中心原创文章,如果转载请保留http://www.fnc.cn/)
一看!晕倒~~~本地时间居然被提前了N年,调整好本地时间后,问题解决!hello@fvce.com
我们的工作每天都会遇到很多稀奇古怪的问题,有句话叫江湖越老胆子越小,操作系统中任何一个微小的功能,我们作为技术人员都应该用极度重视的态度去了解,解开每一个问题的幕后成因是我们进步的基础,再次感谢关注飞驰数据。
飞驰数据西安专业域名注册与虚拟主机服务提供商 http://www.fnc.cn/