关于验证码的问题

<table>
<tr>
<td><img src="getcode.asp" ><%=session("getcode")%>
</td>
</tr>
</table>
用动网的, 为什么图片出来的和session("getcode")不一样,刷新后session("getcode")
是前一次图片显示的数字
[251 byte] By [dephibegin] at [2008-1-9]
# 1
这样就对了。

因为getcode.asp和你的调用文件是异步加载的;
访问时,先打开了你的调用文件,从服务器的session中获得了现在getcode的值,并显示在<img>后面;
然后,就发送给浏览器了,浏览器读到<img>的时候,才去加载getcode.asp,这时才显示出了新的验证码图片,同时在服务器session里生成了新的getcode值。
# 3
有没有什么办法解决?
dephibegin at 2007-9-30 > top of Msdn China Tech,Web,ASP...
# 4
不需要解决啊,你怎么能在显示图片验证码的同时还显示文字呢?这样的验证码就没作用了。
验证码的逻辑是这样的。
首先,通过getcode.asp生成验证码保存在session中,并把验证码转换成图片,发送到浏览器。
然后,当用户提交的时候,把根据图片看到的验证码提交,程序把这个提交的内容和session中的进行比较。
# 5
我的原意是想在没提交前用脚本检查是否验证码通过,看来是不行啦
还有,不好意思,还不知道怎么给分,楼上的指点下
dephibegin at 2007-9-30 > top of Msdn China Tech,Web,ASP...
# 6
用脚本检查就毫无意义了,别人完全可以做个模仿页面,直接提交登录信息而绕过验证码。或者直接用机器人程序读取验证码。
验证码的作用就是防止别人做机器人自动提交的。