首页 新闻 会员 周边 捐助

Session问题

0
悬赏园豆:15 [已解决问题] 解决于 2010-11-24 17:19

我要做个网站,登录时要求用户输入验证码,每个验证码要求只能保留五分钟,既五分钟后该验证码失效,我将其保存在session中,我在页面中设置了session的timeout为5,但是我还有其他地方用到session 过了五分钟它将我其他的session也销毁了,我到底该怎么做呢???

_____昆的主页 _____昆 | 菜鸟二级 | 园豆:204
提问于:2010-11-19 16:56
< >
分享
最佳答案
0

楼主意思是不是在这5分钟都是这一个验证码。过了5分钟后就换成其他了。如果这样。你可以在数据库中添加一个字段就是上次请求验证码的时间,然后每次请求时候传当前的时间和那个比如果大于5分钟就可以换了。腾讯的验证码传的是个随机的小数。

收获园豆:15
童同 | 菜鸟二级 |园豆:258 | 2010-11-19 19:09
这个我都想到了,就是不想放到数据库去 太麻烦了 而且性能方面也不怎么好
_____昆 | 园豆:204 (菜鸟二级) | 2010-11-20 11:31
用户第一请求的是把时间放入COOKIE啊。然后用户再次请求直接判断时间是是否相差5分钟,如果是就更新COOKIE里面的时间。这样可以减轻服务器的压力。但是对于不支持COOKIE的浏览器就不行了(不过很少见)。
童同 | 园豆:258 (菜鸟二级) | 2010-11-25 12:16

@-ャоo遺.莣: 其实最好是每个验证吗只能用一次,如果页面关闭了就该失效或者登录后要及时销毁已经用过的验证码。铁道部购票的网站就有这个漏洞

童同 | 园豆:258 (菜鸟二级) | 2012-03-11 22:13
其他回答(3)
0

楼主可以尝试登陆成功之后即时把保存验证码的Session["..."] = null,不要去动全局的设置...

三桂 | 园豆:3565 (老鸟四级) | 2010-11-19 16:58
呵呵 我只要保存五分钟,五分钟过后就将该session销毁,但五分钟之内还是要保存的
支持(0) 反对(0) _____昆 | 园豆:204 (菜鸟二级) | 2010-11-20 11:32
0

可以用缓存,每项可以设置过期时间。

Astar | 园豆:40805 (高人七级) | 2010-11-19 17:05
0

也可以用application来保存信息

邓大林 | 园豆:200 (初学一级) | 2010-11-22 11:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册