12.3.8 添加用户模块
在用户管理界面UserList.asp中,单击【添加用户信息】超级链接,将打开UserAdd.asp文件,在该文件中,系统管理员可以添加用户记录。UserAdd.asp文件的界面设计如图12-8所示。
![]() |
| 图 12-8 UserAdd.asp文件的界面设计图 |
在UserAdd.asp文件中,包含表单myform,用于填写用户信息。在表单myform中,定义输入用户名的文本域名称为UserName,输入用户姓名的文本域名称为Ename,输入用户密码的文本域名称为Pwd,输入确认密码的文本域名称为Pwd1,输入电子邮箱的文本域名称为Email。另外,在表单myform中,还定义了隐藏域flag,用来标识当前操作是添加用户操作还是修改用户操作。表单myform的定义语句如下:
<form method = "post" action = "UserSave.asp " name = "myform" _
onsubmit = "return ChkFields()">
可以看出,当管理员输入用户信息,并单击【提交】按钮后,表单中的数据首先在ChkFields()过程中检查其合法性,然后将数据提交到服务器端,在UserSave.asp文件中处理。ChkFields()过程的代码如下:
<script language = "VBScript">
function ChkFields()
if document.myform.UserName.value = " " Then '用户名没有输入
window.alert("请输入用户名") '给出提示
myform.UserName.focus() '将用户名文本框设为输入焦点
return false
End If
'用户名长度太小
if document.myform.UserName.value.Length <= 6 Then
window.alert("请用户名长度必须大于2!") '给出提示
myform.UserName.focus() '将用户名文本框设为输入焦点
return false
End If
if document.myform.Pwd.value.Length <= 6 Then '密码长度小于6
window.alert("新密码长度大于6") '给出提示
myform.UserName.focus() '将用户名文本框设为输入焦点
return false
End If
if document.myform.Pwd.value =" " Then '密码没有输入
window.alert("请输入新密码") '给出提示
myform.UserName.focus() '将用户名文本框设为输入焦点
return false
End If
if document.myform.Pwd1.value =" " Then '确认密码没有输入
window.alert("请确认新密码") '给出提示
myform.UserName.focus() '将用户名文本框设为输入焦点
return false
End If
'两次输入的密码不相同
if document.myform.Pwd.value <> document.myform.Pwd1.value Then
window.alert("两次输入的新密码必须相同") '给出提示
myform.UserName.focus() '将用户名文本框设为输入焦点
return false
End If
return true
End Function
</script>
在UserSave.asp文件中处理用户信息添加的代码如下:
Dim sql,UserName,UserPwd,Ename,Email '定义变量
'从表单中读取用户名数据,使用Trim()函数去掉字符串前后的空格后,将字符串保存到变量
'UserName中
UserName = Trim(Request.Form("UserName"))
'从表单中读取密码数据,使用Trim()函数去掉字符串前后的空格后,将字符串保存到变量UserPwd中
UserPwd = Trim(Request.Form("Pwd"))
Ename = Request.Form("Ename") '读取用户姓名数据
Email = Request.Form("Email") '读取用户电子邮箱数据
'如果flag域的值为new,表示添加数据,否则表示修改数据
If Request.Form("flag") = "new" Then
'判断此用户是否存在
Set HVrs = Server.CreateObject("ADODB.RecordSet")
'从数据库中查询UserName列的值为UserName的记录
sql = "Select * from users where UserName = ' "&UserName&" ' "
'执行查询,并将结果保存在HVrs中
HVrs.Open sql,conn,1,3
If Not HVrs.EOF Then '不存在满足条件的记录
Response.Write "<script>alert('已经存在此用户名'); _
history.back();</script>"
Response.End
Else '存在满足条件的记录
If Not IsValidEmail(Email) Then '判断邮件地址格式
Response.Write "<script>alert('邮件地址格式不正确');_
history.back();</script>"
Response.End
Else
Set Urs = nothing
'在数据库Users中插入新信息
Set Urs = Server.CreateObject("ADODB.RecordSet")
sql = "Select * from Users"
Urs.Open sql,conn,1,3
Urs.addnew '插入新记录
Urs("UserName") = UserName '用户名
Urs("UserPwd") = md5(UserPwd) '密码
Urs("Ename") = Ename '用户姓名
Urs("Email") = Email '用户Email
Urs.update '更新数据库
Urs.Close '关闭RecordSet对象
Set Urs = nothing
End If
End If
HVrs.Close '关闭RecordSet对象
Set HVrs=nothing
Response.Write "<center>添加成功<br><br><br>"
'建立到用户管理界面的超级链接
Response.Write("<a href = UserList.asp>返回</a>")
用户信息添加代码的执行步骤如下:
(1)使用Rquest对象的Form()方法读取从表单传递过来的用户数据。
(2)使用Request对象的Form()方法读取隐藏域flag的值。
(3)如果flag的值为new,表示添加新记录。则首先判断当前的用户名在数据库中是否存在,如果已经存在,则提示用户“已经存在此用户名”,然后返回前一页。如果不存在,则首先判断输入的数据格式是否正确,正确的话就使用Insert语句在数据库中插入新记录;否则给出提示。
| 回书目 上一节 下一节 |