1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

严谨的技术问题。达人请进~

本帖由 风狼2007-06-13 发布。版面名称:后端开发

  1. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    捡到一个验证码的代码。他默认是说在服务端验证的。我想改成在客户端验证。就把Session的值取回来了。哪知他每次都只得到上一次刷新的验证码 .

    www.33f.cn/xxx/reg.asp

    验证码生成文件 :www.33f.cn/xxx/getcode.asp
    代码如下:
     
  2. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    我看GetCode里是把生成的四位数字传递给了Session("GetCode")呀。我在reg.asp页面里用<input type="text" name="xxoo" value="<%=Session("GetCode")%>" />来得到值应该米错吧
     
  3. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    补充。表单处理页面代码
    这样又可以正常比对。。WHY???
     
  4. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    这个好像要看看你的 Session 赋值给 input ,是在 GetCode 之前还是之后了。
     
  5. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    奇怪的事。我是放在后面呀
     
  6. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    <tr>
    <td><div align="right" class="hei12pxsong">
    <div align="right">
    <div align="right">验证码:<font color="#FF0000">&nbsp;*&nbsp;</font></div>
    </div>
    </div></td>
    <td><input name="mofei" type="text"> <%=getcode1()%></td> '这里开始调用
    <td><div align="left" class="hei12pxsong">请输入验证码</div></td>
    </tr>
    <tr>
    <td height="45" colspan="3"><div align="center">
    <input type="submit" name="Submit" value="同意以下条款,提交注册信息" />
    </div></td>
    </tr>
    </table>
    <input type="text" name="xxoo" value="<%=Session("GetCode")%>" /> '我在这取值
    </form>
    <%
    '------------------------------------------------验证码使用函数-----------------------------------------
    Function getcode1()
    Dim test
    On Error Resume Next
    Set test=Server.CreateObject("Adodb.Stream")
    Set test=Nothing
    If Err Then
    Dim zNum
    Randomize timer
    zNum = cint(8999*Rnd+1000)
    Session("GetCode") = zNum
    getcode1= Session("GetCode")
    Else
    getcode1= "<img src=""getcode.asp"">"
    End If
    End Function
    '-------------------------------------------------------------------------------------------------------
    %>
     
  7. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    我先看看我的,你这个验证码代码应该和我用的差不多,函数名都一样。
     
  8. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    尝试了一下,无论放在前面还是后面,都是迟一个。

    不知道这个是什么原因。

    :(
     
  9. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    是不是因为验证码生成是在另外一个页面,所以在当前页面调用 Session ,显示的是已经存在的值,然后才是验证码类中给 Session 赋值呢?!也就是当前页面的优先级高于被调用的页面?!
     
  10. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    我尝试将验证码类的代码放到当前页面中,然后在类中直接输出其中的 Session 的内容,然后再输入这个 Session 的内容,结果就是一致的了。
     
  11. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    呀呼?难道不同页面调用就会出现延迟?真奇怪。我在类中直接输出SESSION也会出问题。。发了个PM给作者米回音。。
     
  12. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    期待你可以得到解决办法。