开发注册页面时发现一个问题,session有时可以存入数据库有时不可以。开始测试时刷新页面都可以存入数据库,唯独新建标签什么的无法记录session。session确确实实已经生成了,可是为什么不能存入数据库呢。去网上搜了下,很多问弹出窗口造成session失效,还有朋友说是时间问题,客户端和服务器要一致。结果经过长时间的测试研究,上诉原因都排除了,在其他服务器上测试,结果发现就我本机不正常,,就连配置文件都更换了,php也换了,结果还是那样。后来发现其他有注册码的页面都没问题,为啥就这个页面不正常呢。
比较之下才发现,这个页面有ajax请求。那么是不是ajax请求造成的呢!注释了ajax请求,果然问题就没了!加入状态判断,等ajax请求后,再生成注册码。测试完全无误。
那到底是什么问题造成的呢?怀疑是服务器同时处理ajax请求和生成验证码,验证码的session未写入数据库所致,有点牵强,但现在只能这么认为了。