日期:2014-05-17  浏览次数:20792 次

[探讨]ASP-Session验证码,在打开新网页时前一个网页上显示的验证码就无效了。
利用SESSION技术实现的验证码,在做后台登录时没问题,但用他做文章讨论的验证码时就有问题了:

1.在打开新网页时前一个网页上显示的验证码就无效了。因为他只记录最后生成的一个验证码。
2.如果用户看了你半天文章,超过了session的有效期,那么他评论时,验证码会显示过期,有时还会出现用户用户输入了半天的内容消失的情况,非常不利于交互。


目前本人试过的方法:
验证码失效:用xmlhttp实现读取本网站任意一网页头 "HEAD ",或读内容 "GET ",以让网页SESSION时间延长,结果失败。代码如下:
//不让验证码失效
checkcode_yongfa365()
function   checkcode_yongfa365()
{
timer2=window.setTimeout( "checkcode_yongfa365() ",1000*60*10);
XMLHTTP   =   new   ActiveXObject( "Microsoft.XMLHTTP ");
XMLHTTP.open( "GET ", "http://www.yongfa365.com/blog/index.htm ",true);
XMLHTTP.send();

}
曾分析过Z-blog,他有三个函数,生成,取得,验证,验证码,使用的是application技术,看了半天也没看懂(主要是内心反对使用这个对象)


好的验证码应该是:
1.每页都有自己的验证码
2.验证码不会过期
3.验证码应该可以让用户更换,以便看清,且有明显提示“看不清?”,而不是手放到图片上才显示。

我见到过的可以实现的例子有http://www.ky530.com/blog,http://hi.baidu.com/yongfa365,这里面的文章就是每一文章就有一个验证码,不知道如何实现好。

欢迎大家探讨,或直接给出好的例子来。

------解决方案--------------------
session的名称不能一样..
------解决方案--------------------
关于SESSION过期的问题

可以用COOKIES,在存储之前先用MD5加密一下.