以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 后台异步校验addinput (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98276) |
||||||||
-- 作者:zhangjian222200 -- 发布时间:2017/3/27 15:25:00 -- 后台异步校验addinput 假设一个页面已经使用增加了cookie(key=yanzhengma;value=1234) 在另一个页面,使用后台异步校验addinput输入的值1234,是否必须使用js代码读取cookie里面的键值进行验证?
[此贴子已经被作者于2017/3/27 15:36:44编辑过]
|
||||||||
-- 作者:有点色 -- 发布时间:2017/3/27 15:42:00 -- 你cookie在哪里生成的,读取cookie就在哪里进行。 |
||||||||
-- 作者:zhangjian222200 -- 发布时间: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 这是生成验证码的页面,也是验证数据的页面(文件见附件)
这是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编辑过]
|
||||||||
-- 作者:有点蓝 -- 发布时间:2017/3/27 22:11:00 --
|
||||||||
-- 作者:zhangjian222200 -- 发布时间: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编辑过]
|
||||||||
-- 作者:有点蓝 -- 发布时间:2017/3/28 9:07:00 -- 把js这句去掉 document.getElementById("pim").onclick();
|
||||||||
-- 作者:zhangjian222200 -- 发布时间:2017/3/28 10:31:00 -- 1.采用4楼代码,按5楼稍调整代码,发现进入login.htm时,httprequest代码即进行验证 2.在点击登录时,进入getVimg.htm验证 这样,放在登录验证的内容,将无法再次经过httprequest代码即进行验证,所以,我想:能否把部分httprequest验证代码放在getVimg.htm? 这是项目文件
这是项目文件夹
[此贴子已经被作者于2017/3/28 10:31:34编辑过]
|
||||||||
-- 作者:有点色 -- 发布时间:2017/3/28 10:50:00 -- 没必要这样啊,你只要验证成功,就返回
e.WriteString("OK")
js里面的result如果是OK值,就会跳转到你的 Form1 指定的页面login.htm的啊。 |
||||||||
-- 作者:zhangjian222200 -- 发布时间:2017/3/28 11:00:00 -- 下面内容不用看了,我大概理解楼上的意思了 所以问题是:getVimg.htm验证后,在哪里\\怎么样验证账号密码,然后cookie保存账号、密码?
[此贴子已经被作者于2017/3/28 11:12:58编辑过]
|
||||||||
-- 作者:有点色 -- 发布时间:2017/3/28 11:33:00 -- 当然,你也可以把能否登陆的代码写到 getVimg.htm 那里去,这样控制登陆或许会更友好,至少页面不需要跳转。 |