以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何增加注册页面 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175612) |
||||
-- 作者:BG小白 -- 发布时间:2022/3/11 14:09:00 -- 如何增加注册页面 Case "logon.htm" \'登录页面 wb.AddPageTitle("","pageheader","销售系统","由湛江辉迅基于Foxtable开发") If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then \'判断是否是验证失败后的重新登录 wb.AddTopTips("","toptip1","用户名或密码错误!").msec = 2000 \'如果用户通过登录按钮访问,则给用户一个2秒的提示. End If wb.AddForm("","form1","logon.htm") With wb.AddInputGroup("form1","ipg1") .AddInput("username","户名","text") .AddInput("password","密码","password") End With With wb.AddButtonGroup("form1","btg1",True) .Add("btn1", "登录", "submit") .Add("btn1", "注册", "zc.htm") End With 点击注册按钮后,怎么能跳过验证,直接进入zc.htm这个页面
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/11 14:21:00 -- If e.Path = "logon.htm" \'验证用户名和密码 If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then Dim Verified As Boolean \'用于标记用户是否通过了身份验证 UserName = e.PostValues("username") Password = e.PostValues("password") If UserName = "张三" AndAlso Password = "888" Then \'实际使用的时候,请改为从数据库读取用户名和密码进行比较 Verified = True ElseIf Username = "李四" AndAlso Password="999" Then Verified = True End If If Verified Then UserID = Rand.NextString(16) \'生成随机用户ID UserName = EncryptText(UserName,"123","123") \'将用户名加密. Dim dr As DataRow = UserTable.Find("UserName = \'" & UserName & "\'") If dr IsNot Nothing Then \'如果是重复登录,删除以前的登录信息 dr.Delete() End If dr = UserTable.AddNew() dr("UserName") = UserName dr("UserID") = UserId dr("ActiveTime") = Date.Now \'记录登录时间 wb.AppendCookie("username",UserName) \'将用户名和UserID写入cookie wb.AppendCookie("userid",UserID) wb.InsertHTML("<meta http-equiv=\'Refresh\' c>") \'直接跳转到首页 e.WriteString(wb.Build) \'生成网页 Return \'必须的 End If End If elseIf e.Path = "zc.htm" 注册页的处理 Else \'其它页面从Cookie提取登录信息进行验证 UserName = e.Cookies("username") \'从cookie中获取用户名 UserID = e.Cookies("userid") \'从cookie中获取 随机ID Dim dr As DataRow = UserTable.Find("UserName = \'" & UserName & "\'") If dr IsNot Nothing AndAlso dr("UserID") = UserID Then \'如果通过验证,更新活动时候,继续访问其它页面. dr("ActiveTime") = Date.Now \'更新活动时间 Else \'如果验证失败 wb.InsertHTML("<meta http-equiv=\'Refresh\' c>") \'那么直接跳转到登录页面 e.WriteString(wb.Build) \'生成网页 Return \'必须的 End If End If \'开始生成网页 Select Case e.path Case "logon.htm" \'登录页面 wb.AddPageTitle("","pageheader","销售系统","由湛江辉迅基于Foxtable开发") If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then \'判断是否是验证失败后的重新登录 wb.AddTopTips("","toptip1","用户名或密码错误!").msec = 2000 \'如果用户通过登录按钮访问,则给用户一个2秒的提示. End If wb.AddForm("","form1","logon.htm") With wb.AddInputGroup("form1","ipg1") .AddInput("username","户名","text") .AddInput("password","密码","password") End With With wb.AddButtonGroup("form1","btg1",True) .Add("btn1", "登录", "submit") End With Case "zc.htm" ……
|
||||
-- 作者:BG小白 -- 发布时间:2022/3/12 4:18:00 -- 哪里不对哦,我把zc.htm写成了内部函数,按照上面的方式不对啊 |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/12 8:46:00 -- 贴出完整代码,或者上传实例说明问题 |
||||
-- 作者:BG小白 -- 发布时间:2022/3/12 14:09:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/12 14:29:00 -- 只添加一个函数是没有用的。 参考登录页的用法,注册的验证要放到httprequest,看2楼的第一段红色代码,处理逻辑参考登录页的用户和密码验证方法 注册页的页面控件才能放到函数里,然后还要调用这个函数 \'开始生成网页 Select Case e.path Case "logon.htm" \'登录页面 wb.AddPageTitle("","pageheader","销售系统","由湛江辉迅基于Foxtable开发") If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then \'判断是否是验证失败后的重新登录 wb.AddTopTips("","toptip1","用户名或密码错误!").msec = 2000 \'如果用户通过登录按钮访问,则给用户一个2秒的提示. End If wb.AddForm("","form1","logon.htm") With wb.AddInputGroup("form1","ipg1") .AddInput("username","户名","text") .AddInput("password","密码","password") End With With wb.AddButtonGroup("form1","btg1",True) .Add("btn1", "登录", "submit") End With Case "zc.htm" Functions.Execute("注册",e) |
||||
-- 作者:BG小白 -- 发布时间:2022/3/12 14:32:00 -- 我加了啊 Select Case e.path Case "logon.htm" \'登录页面 wb.AddPageTitle("","pageheader","销售系统","由湛江辉迅基于Foxtable开发") If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then \'判断是否是验证失败后的重新登录 wb.AddTopTips("","toptip1","用户名或密码错误!").msec = 2000 \'如果用户通过登录按钮访问,则给用户一个2秒的提示. End If wb.AddForm("","form1","logon.htm") With wb.AddInputGroup("form1","ipg1") .AddInput("username","户名","text") .AddInput("password","密码","password") End With With wb.AddButtonGroup("form1","btg1",True) .Add("btn1", "登录", "submit") .Add("btn1", "注册", "addnew.htm") End With Case "addnew.htm" \'登录页面 Functions.Execute("注册",e) |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/12 14:46:00 -- 就是做测试,也要认真点。如果英文不好,可以考虑使用中文的页面名称,addnew这只能名称容易让产生误会。 那么还差第一步 If e.Path = "logon.htm" \'验证用户名和密码 If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then Dim Verified As Boolean \'用于标记用户是否通过了身份验证 UserName = e.PostValues("username") Password = e.PostValues("password") If UserName = "张三" AndAlso Password = "888" Then \'实际使用的时候,请改为从数据库读取用户名和密码进行比较 Verified = True ElseIf Username = "李四" AndAlso Password="999" Then Verified = True End If If Verified Then UserID = Rand.NextString(16) \'生成随机用户ID UserName = EncryptText(UserName,"123","123") \'将用户名加密. Dim dr As DataRow = UserTable.Find("UserName = \'" & UserName & "\'") If dr IsNot Nothing Then \'如果是重复登录,删除以前的登录信息 dr.Delete() End If dr = UserTable.AddNew() dr("UserName") = UserName dr("UserID") = UserId dr("ActiveTime") = Date.Now \'记录登录时间 wb.AppendCookie("username",UserName) \'将用户名和UserID写入cookie wb.AppendCookie("userid",UserID) wb.InsertHTML("<meta http-equiv=\'Refresh\' c>") \'直接跳转到首页 e.WriteString(wb.Build) \'生成网页 Return \'必须的 End If End If elseIf e.Path = "zc.htm" 注册页的处理必须放到这里,参考上面logon.htm的用法 Else \'其它页面从Cookie提取登录信息进行验证 UserName = e.Cookies("username") \'从cookie中获取用户名 UserID = e.Cookies("userid") \'从cookie中获取 随机ID |