Jan
4

PHP程序中注意你的session变量

一直以来,习惯性的滥使用变量。
不过连续两晚的失眠让我有了很多时间来反思自己。
前一段时间自己的项目中的出现了几例无法确认的现像:使用验证码干预后,表单同样的数据仍然在数据库中记录了N条.
第一次遇到这事时:我的第一反应不是怀疑我的程序(呵呵,人不太聪明,但逻辑的自信还是有的),我猜测的还是客户太有精力了,在不断的提交,自己也就去再去查了下代码没有发现问题。
第二次发生了,同样的情况。由于没有找到问题的根源,我去把数据库作了为唯一的限制。不过感觉太别扭了,心里也一直放不下这事,也终究找到答案很相近的答案了----在用户第二次提交过来数据时,我的验证码没有更新。在这理论的指引我从自己的程序习惯上去分析问题了,结果发现天呀,我就没有一次去主动销毁过SESSION变量,呵呵。于是乎,改正--->问题消灭。

情景重回:
一、前提条件:
1、你使用了传说中比FF还爽的Opera浏览器。
2、有一个能提交数据的表单。
3、提交后的表单没有给JS清理
二、实验步骤:
1、在表单中填写上你的数据。
2、提交你的表单。
3、如果现在的页面不是表单页面,请按浏览器后退按钮
三、结果分析:
表单里面的数据全部保留着(IE等,会把某些给清零掉的),同时验证码图片并没有更新,所以再次提交还是可行的。

友情提醒:细节真的可以决定关键,使用session变量要小心 AND with all you still careful
------------NeiLyi[尼尔易]

共计 0 条评论

NAME:

required

E-MAIL:

required, will not be published

HOMEPAGE:

CONTENT: