设计首页和登录页面
本节的任务是设计一个登录页面:
如果用户名和密码错误,会显示2秒的错误提示:
如果用户名和密码正确,进入首页:
如果在首页点击退出,会回到登录页面。
HttpRequest事件代码:
Dim
wb As
New
weui
'身份验证
Dim
Verified As
Boolean
'用于标记用户是否通过了身份验证
Dim
UserName As
String = e.Cookies("username")
'从cookie中获取用户名
Dim
Password As
String = e.Cookies("password")
'从cookie中获取用户密码
If
e.Path =
"logon.htm"
'如果是通过登录页面访问,从PostValues即可中提取用户名和密码
If e.PostValues.ContainsKey("username")
AndAlso e.PostValues.ContainsKey("password")
Then
UserName =
e.PostValues("username")
Password =
e.PostValues("password")
End
If
End
If
If
UserName =
"张三"
AndAlso Password
= "888" Then
'实际使用的时候,请改为从数据库读取用户名和密码进行比较
Verified =
True
ElseIf
Username =
"李四"
AndAlso Password="999"
Then
Verified =
True
End
If
If
Verified AndAlso
e.Path =
"logon.htm" Then
'如果用户访问的是登录页,且身份验证成功
wb.AppendCookie("username",UserName)
'将用户名和密码写入cookie
wb.AppendCookie("password",Password)
wb.InsertHTML("<meta
http-equiv='Refresh' content='0; url=/default.htm'>")
'直接跳转到首页
e.WriteString(wb.Build)
'生成网页
Return
'必须的
ElseIf
Verified = False
AndAlso e.Path
<> "logon.htm" Then
'如果用户身份验证失败,且访问的不是登录页面
wb.InsertHTML("<meta
http-equiv='Refresh' content='0; url=/logon.htm'>")
'那么直接跳转到登录页面
e.WriteString(wb.Build)
'生成网页
Return
'必须的
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 "exit.htm"
'退出登录
wb.DeleteCookie("username")
'清除cookie中原来的用户名和密码
wb.DeleteCookie("password")
wb.InsertHTML("<meta
http-equiv='Refresh' content='0; url=/logon.htm'>")
'那么直接跳转到登录页面
Case "",
"default.htm"
'首页
wb.AddPageTitle("","pageheader","销售系统","由湛江辉迅基于Foxtable开发")
With wb.AddGrid("","g1")
.Add("c1","增加订单",
"./images/button.png").Attribute
= "onclick='javascript:alert(""你单击了我!"")'"
.Add("c2","客户管理",
"./images/cell.png",
"http://www.foxtable.com")
.Add("c3","销售统计",
"./images/toast.png",
"http://www.foxtable.com")
.Add("c4","Dialog",
"./images/dialog.png",
"http://www.foxtable.com")
.Add("c5","Progress",
"./images/progress.png",
"http://www.foxtable.com")
.Add("c6","Msg",
"./images/msg.png",
"http://www.foxtable.com")
.Add("c7","Article",
"./images/article.png",
"http://www.foxtable.com")
.Add("c8","ActionSheet",
"./images/actionSheet.png",
"http://www.foxtable.com")
.Add("c9","Icons",
"./images/icons.png",
"http://www.foxtable.com")
.Add("c10","Panel",
"./images/panel.png",
"http://www.foxtable.com")
.Add("c11","Tab",
"./images/tab.png",
"http://www.foxtable.com")
.Add("c12","退出",
"./images/exit.png",
"exit.htm")
'退出登录
End
With
End
Select
e.WriteString(wb.Build)
'生成网页
代码逻辑并不复杂,所有知识之前都已经讲述过,唯一没有接触过的是自动跳转网页的代码:
<meta http-equiv='refresh' content='2; url=/logon.htm'>
表示2秒后跳转到"/logon.htm"页面,如果你要立即跳转,将2改为0即可。