您所在的位置: 首页 > 读书频道 > 设计开发 > .Net系列 >

12.3.8 添加用户模块

http://book.51cto.com  2008-02-18 11:07  强锋科技 顼宇峰 马军编著  人民邮电出版社  我要评论(0)

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语句在数据库中插入新记录;否则给出提示。

【责任编辑:董书 TEL:(010)68476606】


回书目   上一节   下一节
最优性价比组建无线网络
网络应用性能控管最佳实践
网络工程师职业规划与现状
计算机网络维护入门
未来五年可能必备的10大网络技术
 
 验证码: (点击刷新验证码)   匿名发表
  • 网络工程师考试案例动手实验营

  • 作者:郭春柱
  • 本书依据2009年版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点..
Copyright©2005-2008 51CTO.COM 版权所有