Foxtable(狐表)用户栏目专家坐堂 → 后台异步校验addinput


  共有2274人关注过本帖树形打印复制链接

主题:后台异步校验addinput

帅哥哟,离线,有人找我吗?
zhangjian222200
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
后台异步校验addinput  发帖心情 Post By:2017/3/27 15:25:00 [只看该作者]

假设一个页面已经使用增加了cookie(key=yanzhengma;value=1234)

在另一个页面,使用后台异步校验addinput输入的值1234,是否必须使用js代码读取cookie里面的键值进行验证?
[此贴子已经被作者于2017/3/27 15:36:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/27 15:42:00 [只看该作者]

 你cookie在哪里生成的,读取cookie就在哪里进行。

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/3/27 18:55:00 [只看该作者]

根据2楼提示,我把验证页面防在生成验证码的页面,提示出现乱码

图片点击可在新窗口打开查看此主题相关图片如下:qq图片201703271841441.png
图片点击可在新窗口打开查看


这是登录页面代码
Dim e As RequestEventArgs = args(0)                             '登录页面
Select Case e.Path
    Case "login.htm"
        Dim wb As New weui
        If e.PostValues.Count = 0 Then
            wb.AddTopTips("","toptip1","") '用于显示动态错误提示
            wb.AddForm("","form1","login.htm").Attribute = "on-sub-mit='return validit_login()'"
            With wb.AddInputGroup("form1","ipg1","登录")
                If e.PostValues.ContainsKey("isj") AndAlso e.PostValues.ContainsKey("imm")  Then '判断是否是验证失败后的重新登录
                    wb.AddTopTips("","toptip1","用户名或密码错误!").msec = 2000 '如果用户通过登录按钮访问,则给用户一个2秒的提示.
                End If
                With .AddInputCell("ic1")  '通过InputCell增加输入框(1表示突出显示,2表示红色警示图标)
                    .AddLabel("lsj","手机",0)  '增加标签(0显示在左边)
                    .AddInput("isj","text",1).PlaceHolder= "请输入手机号"  '增加输入框(0靠左显示,1居中显示,2靠右显示)
                End With
                With .AddInputCell("ic2")
                    .AddLabel("lmm","密码",0)
                    .AddInput("imm","password",1).PlaceHolder= "请输入密码"
                End With
                With .AddInputCell("ic5") '通过InputCell增加输入框
                    .AddLabel("lyzm","验证码",0) '增加标签,0显示在左边
                    .AddInput("yzm","text",1) '增加输入框,1表示显示在中间
                    .AddImage("pim","/getVimg.htm",2).Attribute ="o-n-click=""this.src = 'getVimg.htm?rand=' + Math.random() """   '增加一个图片,2比表示显示在右边
                End With
                '.AddSwitch("jizhumima","记住密码").Value = "是"    '此行已注释
                With wb.AddButtonGroup("form1","btg1",True)
                    .Add("btn1", "登录","submit") '"/index.htm")
                End With
                With wb.AddButtonGroup("form1","btg2", False)
                    .Add("btn2", "免费注册","","/register.htm").Kind = 1
                    .Add("btn3", "忘记密码","","/getback.htm").Kind = 1
                End With
            End With
            wb.AppendHTML("<script src='./lib/ajax—form_login.js'></script>") '引入脚本文件
            e.WriteString(wb.Build) '生成网页
        End If
End Select

这是生成验证码的页面,也是验证数据的页面(文件见附件)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:getving.txt


图片点击可在新窗口打开查看此主题相关图片如下:getving.png
图片点击可在新窗口打开查看


这是js代码(文件见图片)
function validit_login(){
    var result=submitAjaxFileds("getVimg.htm","","isj","imm","yzm",false);
    if(result=="OK"){
        return true;
    }
    else{
        showTopTips("toptip1",result,2000);
        return false;
    }
}
[此贴子已经被作者于2017/3/27 19:12:35编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110565 积分:562715 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/27 22:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:123.txt


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/3/28 8:34:00 [只看该作者]

1.按照楼上的代码,我加了跳转网页的代码及return“”(都是粉色),跳转页面前,重新生成验证码了,这个不应该这样
2.我感觉没有登录成功

    Case "getVimg.htm"
        If e.PostValues.Count > 0 Then
            Dim wb As New weui
            Dim shoujh As String = e.PostValues("isj") '验证手机是否空值
            Dim mim As String = e.PostValues("imm") '验证手机是否空值
            Dim yanzm As String = e.PostValues("yzm") '验证手机是否空值
            Dim cookie_yzm As String = e.Cookies("yanzhengma") '从cookie中获取验证码
            If shoujh = "" Then 
                e.WriteString("手机不能为空!")
                Return ""
            ElseIf mim = "" Then
                e.WriteString("密码不能为空!")
                Return ""
            ElseIf mim <> "" AndAlso mim.Length < 6 Then
                e.WriteString("请正确输入密码!")
                Return ""
            ElseIf mim <> "" AndAlso mim.Length > 12 Then
                e.WriteString("请正确输入密码!")
                Return ""
            ElseIf yanzm = "" Then
                e.WriteString("验证码不能为空!")
                Return ""
            ElseIf yanzm <> cookie_yzm  Then
                e.WriteString("请正确输入验证码!")
                Return ""
            End If
            wb.InsertHTML("<meta http-equiv='Refresh' con-tent='0; ur-l=/index.htm'>")    '那么直接跳转到登录页面
            e.WriteString(wb.Build)
ElseIf e.GetValues.ContainsKey("rand")
            ***其余楼上代码
else
            ***其余楼上代码
end if

[此贴子已经被作者于2017/3/28 8:49:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110565 积分:562715 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/28 9:07:00 [只看该作者]

把js这句去掉

document.getElementById("pim").onclick();

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/3/28 10:31:00 [只看该作者]

1.采用4楼代码,按5楼稍调整代码,发现进入login.htm时,httprequest代码即进行验证
2.在点击登录时,进入getVimg.htm验证

这样,放在登录验证的内容,将无法再次经过httprequest代码即进行验证,所以,我想:能否把部分httprequest验证代码放在getVimg.htm?

这是项目文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:langwo(2017-3-28).rar


这是项目文件夹
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:web(2017-3-28).rar


[此贴子已经被作者于2017/3/28 10:31:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/28 10:50:00 [只看该作者]

 没必要这样啊,你只要验证成功,就返回

 

  e.WriteString("OK")

 

 js里面的result如果是OK值,就会跳转到你的 Form1 指定的页面login.htm的啊。



 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/3/28 11:00:00 [只看该作者]

下面内容不用看了,我大概理解楼上的意思了




执行情况:
按7楼文件包,如果getVimg.htm验证没有问题,就在getVimg.htm页面跳转网页到首页了,所以不会在返回到login.htm,也就无法验证账号密码什么的了,7楼文件包内验证账号苗木,都在httprequest代码即进行验证的

所以问题是:getVimg.htm验证后,在哪里\怎么样验证账号密码,然后cookie保存账号、密码?
[此贴子已经被作者于2017/3/28 11:12:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/28 11:33:00 [只看该作者]

 当然,你也可以把能否登陆的代码写到 getVimg.htm 那里去,这样控制登陆或许会更友好,至少页面不需要跳转。

 回到顶部