首页 百科知识 网页用户注册、登录与退出系统

网页用户注册、登录与退出系统

时间:2022-10-15 百科知识 版权反馈
【摘要】:用户注册要用到查询和插入记录集,先查询该用户名是否已经存在,若用户名已经存在则返回注册失败信息,若用户名不存在则插入当前用户名到数据库表中。登录成功的同时要把用户名存入Session对象中,标志用户已经登录。用户退出登录的过程,就是清除记录用户名的Session对象的过程,没有了此标志则说明用户没有登录,即退出了登录。在访问网页主页的时候会先判断记录用户名的Session对象是否为空,为空则显示登录表单,不为空则显示欢迎信息。

7.4.1 用户注册、登录与退出系统

为了综合本章所学的知识,这里以常用的用户注册与登录为例,详细介绍数据库的存取应用。

用户注册要用到查询和插入记录集,先查询该用户名是否已经存在,若用户名已经存在则返回注册失败信息,若用户名不存在则插入当前用户名到数据库表中。

用户登录时,要用到查询记录集,查询条件为用户名和用户密码,与用户输入的登录名和密码一致,若查询记录集为空则登录失败,若不为空则登录成功。登录成功的同时要把用户名存入Session对象中,标志用户已经登录。当然也可以使用cookies来记录用户名等信息,这里为了简单把用户名记录在Session对象中。

用户退出登录的过程,就是清除记录用户名的Session对象的过程,没有了此标志则说明用户没有登录,即退出了登录。

为了避免使用过多网页而造成混淆,这里把以上三种功能整合在一个网页reg_logAction.asp中。

在访问网页主页的时候会先判断记录用户名的Session对象是否为空,为空则显示登录表单,不为空则显示欢迎信息。

共使用了1个数据库文件和4个ASP文件,它们分别是:

(1)db1.mdb——数据库文件;

(2)conn.asp——连接数据库,建立Connection对象;

(3)index.asp——用户登录网页的第一个页面;

(4)regForm.asp——用户填写注册信息的页面;

(5)reg_logAction.asp——用户注册登录和退出登录功能页面。

下面依次建立各个文件。

1. 数据库文件db1.mdb

该数据库文件在第7.1节已经建立,这里只用到其中的一张表Users。该数据表(见图7-23)有id、name、pwd、depts和grade五个字段,里面已经有了几条记录。在这里将name字段设为主键。

img476


图7-23 users数据表的结构

2. 连接数据库文件Conn.asp

------------------------------清单 conn.asp-------------------------

<%

Dim conn

set conn=Server.CreateObject("ADODB.Connection")

conn.open "Driver={Microsoft Access Driver

(∗.mdb)};Dbq="&Server.MapPath("db1.mdb")

%>

--------------------------------------------------------------------

3. 用户访问网站的首页index.asp

这里使用了条件语句,根据条件成立与不成立来显示不同的信息:登录表单(见图7-24)和欢迎信息(见图7-25)。

------------------------------清单 index.asp------------------------

<!--#include file="conn.asp" -->

<html>

<head>

<title>用户注册与登录</title>

</head>

<body>

<%if session("userName")="" then %>

<!--如果没有登录则显示登录表单 -->

<table width="90%" border="0" cellpadding="5" cellspacing="1"

bgcolor="#666666">

<!-- 注意表单的Action后面带的URL参数-->

<form name="form1" method="post"

action="reg_logAction.asp?action=log">

<tr>

<td bgcolor="#dddddd"> 用户登录:

用户名:<input name="userName" type="text" id="userName" size="12">

密码:<input name="passWord" type="password" id="passWord"

size="12">

<input type="submit" name="Submit" value="登录">

<a href="regForm.asp">注册</a></td>

</tr>

</form>

</table>

<%else%>

<!--如果已经登录则显示欢迎信息 -->

<table width="98%" border="0" cellpadding="5" cellspacing="1"

bgcolor="#666666">

<tr>

<td bgcolor="#dddddd">

欢迎您:<% =session("userName")%>

今天是:<%=date()%>

<!-- 注意链接后面带的URL参数-->

<a href="reg_logAction.asp?action=exit">退出</a> </td>

</tr>

</table>

<%end if%>

</body>

</html>

--------------------------------------------------------------------

img477


图7-24 用户未登录时显示登录界面

img478

img479


图7-25 用户已登录时显示欢迎信息

4. 用户填写注册信息的页面regForm.asp

----------------------------清单 regForm.asp------------------------

<html>

<head>

<title>用户注册</title>

</head>

<body>

<form name="form1" method="post"

action="reg_logAction.asp?action=reg">

<table width="98%" border="0" cellpadding="5" cellspacing="1"

bgcolor="#666666">

<tr bgcolor="#dddddd">

<td colspan="2"> => 填写注册信息</td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="150">用户名:</td>

<td><input name="userName" type="text" id="userName"></td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="150">密码:</td>

<td><input name="passWord" type="password" id="passWord"></td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="150">重复密码:</td>

<td><input name="passWord2" type="password" id="passWord2"></td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="150">所在系部:</td>

<td><input name="department" type="text" id="department"></td>

</tr>

<tr bgcolor="#FFFFFF">

<td colspan="2" align="center">(必须填写所有信息)

<input type="submit" name="Submit" value="确定">

&nbsp;

<input name="Submit2" type="reset" value="重填"></td>

</tr>

</table>

</form>

</body>

</html>

--------------------------------------------------------------------

调试结果如图7-26所示。

img480


图7-26 用户填写注册信息页面

5. 注册登录和退出登录功能页面 reg_logAction.asp

这个网页较为复杂,请参照说明仔细阅读。

-----------------------清单 reg_logAction.asp -----------------------

<!--#include file="conn.asp" -->

<%

Dim rs,str

'str变量中存储登录/注册/退出的相关信息

'rs为记录集

set rs=Server.CreateObject("ADODB.Recordset")

select case Request.QueryString("Action")

'使用分支语句,依据URL后面的不同参数执行不同的分支

'----------------------用户登录---------------------------------

case "log"

rs.Open "Select ∗ from Users where

name='"&request.Form("userName")&"' and

pwd='"&request.Form("passWord")&"'",conn

'使用eof 和 bof 来判断记录集是否为空

if not rs.eof and not rs.bof then

Session("userName")=request.Form("userName")

str="1. 登录成功<br>2. 3 秒后返回主页"

else

str="1. 登录失败<br>2. 3 秒后返回主页"

end if

'----------------------退出登录----------------------------------

case "exit"

'清除Session("username")

Session("userName")=""

str="1. 用户退出成功<br>2. 3 秒后返回主页"

'----------------------注册新用户---------------------------------

case "reg"

if request.form("userName")<>"" and request.form("passWord")<>"" and

request.form("passWord2")=request.form("passWord")and

request.form("department")<>"" then

rs.open "select ∗ from Users where

Name='"&request.Form("userName")&"'",conn

'判断用户名是否已经存在

if not rs.eof and not rs.bof then

str="1. 用户名已经存在,请重新选择用户名<br>2. 3秒后返回主页"

'插入记录,注册新用户

else

conn.execute "insert Into Users(Name,Pwd,depts)Values

('"&request.form("userName")&"',

'"&request.form("passWord")&"','"&request.form("department")&"')"

str="1. 用户注册成功<br>2. 3秒后返回主页"

end if

else

'用户注册信息不正确,注册失败

str="1. 用户注册信息不正确,注册失败<br>2. 3秒后返回主页"

end if

'------------------------------------------------------------

case Else

Response.write "请选择事件"

end Select

%>

<html>

<head>

<title>登录/注册/退出 结果</title>

<!--3秒后返回index.asp -->

<meta http-equiv="refresh" content="3;URL=index.asp">

</head>

<body>

<table width="90%" border="0" cellpadding="5" cellspacing="1"

bgcolor="#666666">

<tr bgcolor="#dddddd">

<td>>> 登录/注册 结果</td>

</tr>

<tr bgcolor="#FFFFFF">

<td><%=str%></td>

</tr>

</table>

</body>

</html>

--------------------------------------------------------------------

调试结果如图7-27、图7-28所示。

img481

img482

img483


图7-27 用户登录成功、失败与退出的界面

img484

img485


图7-28 用户注册成功/失败的界面

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈