实验要求:
1.设计会员注册登录表单(最好把所有表单控件都测试一下)
2.获取表单提交的数据,并显示出来
3.配置iis,指向程序,进行测试(设置网站根目录,测试程序)
实验步骤:
1、新建一个动态站点,并进行测试,测试的代码为:
2、在站点的根目录下建立如下图所示的结构目录(红色标注)。
3、双击打开注册页面即register.html,并进行如下图所示的设计:
该表单的属性名字输入如下:
用户名的文本框:username
密码的文本框:pwd
重复密码的文本框:secpwd
真实姓名的文本框:truename
性别的单选框:sex(选定值分别设置为:男 、女)
Emai的文本框:email
QQ号码的文本框:qqnum
自我介绍的文本框:userdesc
4、打开代码视图,找到如图所示的地方,给action设置跳转页面。
5、打开access数据库建立一个webdb.mdb数据库,并建立一张和注册页面对应的数据表表名为Users,并把此数据库保存在站点的根目录下。结构如下图所示:
6、双击打开dbconn.asp页面,删除原有代码,并编写如图所示的代码:
红色标注的为数据库的路径,根据自己的网站进行修改。
Dim objConn,connStr
Set objConn = Server.CreateObject("ADODB.Connection")
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
& _
Server.MapPath ("/webdb.mdb")
objConn.Open connStr
%>
7、双击打开endconn.asp页面,删除原有代码,并编写如图所示的代码:
objRS.Close
objConn.Close
Set objRS = Nothing
Set objConn = Nothing
%>
7、双击打开register.asp页面,在
标签之间插入如下代码:
Dim UserName,Pwd,TrueName,Sex
Dim Email,QQNumber,UserDescription
Dim objRS,sqlStr,ErrMsg
UserName = Trim(Request("username"))
Pwd = Trim(Request("pwd"))
TrueName = Trim(Request("truename"))
Sex = Trim(Request("sex"))
Email = Trim(Request("email"))
QQNumber = Trim(Request("qqnum"))
UserDescription = Trim(Request("userdesc"))
Set objRS = Server.CreateObject("ADODB.RecordSet")
sqlStr = "SELECT * FROM users WHERE username LIKE ' "
& UserName &" ' "
objRS.Open sqlStr,objConn,1,3
If Not objRS.EOF Then
ErrMsg = "该用户名已被别人注册了,请换个用户名!"
Else
objRS.AddNew
objRS("username") = UserName
objRS("pwd") = Pwd
objRS("truename") = TrueName
objRS("sex") = Sex
If Email<>"" Then objRS("email") =
If QQNumber<>"" Then
objRS("qqnumber") = QQNumber
If UserDescription<>"" Then
objRS("userdesc") = UserDescription
objRS("regtime") = Now()
objRS.Update
End If
%>
If IsEmpty(ErrMsg) Then
Response.Write("恭喜您注册成功!
")
Else
Response.Write(ErrMsg&"
")
End If
%>
width="900">
href="/users/login.html">返回登陆
注:红色为表单的名称,蓝色标注的为数据库的字段
预览结果:
8、双击打开登陆页面即:login.html,并进行页面设计如下图所示:
并设置表单的属性:
用户名的文本框:username
密码的文本框:pwd
设计完成后打开代码视图,修改action的值。
10、双击打开login.asp页面,在
标签之间插入如下代码:
dim username,pwd,logintimes,errmsg
dim objrs,sqlstr
username = trim(request("username"))
pwd = trim(request("pwd"))
if username = "" then errmsg = "您没有填写用户名,无法登录!"
if pwd = "" then errmsg = "您没有填写密码,无法登录!"
set objrs = server.createobject("ADODB.recordset")
sqlstr = "select pwd from users where username like'"
& username & "'"
objrs.open sqlstr,objconn,1,1
if objrs.eof then errmsg = "没有该注册用户!"
if objrs("pwd")<> pwd then errmsg
= "密码错误,登录失败!"
if isempty(errmsg)then response.redirect("/users/index.asp")
response.write(errmsg&"
")
%>
11、打开index.asp页面设计图下图所示:
12、双击打开userinfo.asp页面,在
标签之间插入如下代码:
dim user
dim objrs,sqlstr
sqlstr = "select*from users "
set objrs = server.createobject("ADODB.recordset")
objrs.open sqlstr,objconn,1,1
do while not objrs.eof
response.write("用户编号:"&objrs("userid")&"
")
response.write("用户名:"&objrs("username")&"
")
response.write("用户密码:"&objrs("pwd")&"
")
response.write("真实姓名:"&objrs("truename")&"
")
response.write("性别:"&objrs("sex")&"
")
response.write("邮箱:"&objrs("email")&"
")
response.write("qq号码:"&objrs("qqnumber")&"
")
response.write("自我介绍:"&objrs("userdesc")&"
")
response.write("注册时间:"&objrs("regtime")&"
")
objrs.movenext
loop
%>
13、完成用户注册模块,保存并进行测试预览。
14、访问计数模块设计
15、打开webcnt.txt页面,删除原有代码,并写入:
注:里面的内容可进行修改,第一行为总访问数,第二行为日期,第三行为当日访问数。
16、双击打开webcnt.asp页面,删除原有代码,并录入如下代码:
Dim objFS, objFile, cntfile
Dim ttlcnt, tdycnt, lastvisitdate,
nowdate
nowdate = Date
cntfile =
Server.MapPath("/counters")&"\webcnt.txt"
Set objFS =
Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.OpenTextFile(cntfile,1,True,0)
If objFile.AtEndOfLine Then
ttlcnt = 1
tdycnt = 1
lastvisitdate = nowdate
Else
ttlcnt = CLng(objFile.ReadLine)
lastvisitdate = CDate(objFile.ReadLine)
tdycnt = CLng(objFile.ReadLine)
End
If
If Session("counted") <> True
Then
ttlcnt = ttlcnt + 1
If nowdate <> lastvisitdate Then
lastvisitdate = nowdate
tdycnt = 1
Else
tdycnt = tdycnt + 1
End If
Session("counted") = True
Set objFile = objFS.OpenTextFile(cntfile, 2)
objFile.WriteLine (ttlcnt)
objFile.WriteLine (lastvisitdate)
objFile.WriteLine (tdycnt)
End
If
Set
objFile = Nothing
Set objFS
= Nothing
Response.Write("您是本站第 "&ttlcnt&"
位访客")
Response.Write("本站今日共有
"&tdycnt&" 位访客")
%>