rs.Close
rsCate.MoveNext
loop
%>
因为在第l步中已经将各新闻类别的标题读取到记录集rsCate中,所以只需要使用执行rsCate.MoveFirst语句将指针复位就可以了。使用DO WHIIlE循环语句依次处理每个新闻类别,读取此类别中的所有新闻信息到记录集rs中,并在表格中显示新闻标题。请参照注释理解。
第二节 登录程序设计
在对系统进行管理之前,需要通过系统的身份认证。本站中使用chkpwd.asp进行身份验证。对于需要登陆才能察看的网页可以在网页的最前端加上如下代码:
这样为
登陆的用户将看到如下界面:
第三节 设计管理界面
管理界面的功能是对新闻类别和新闻提供管理界面,只有有权限的用户才能进入管理界面。本节将介绍管理界面index.asp的实现方法。
录入新闻类别和新闻内容后,index.asp的界面如图5-7所示。
下面介绍index.asp的主要代码。
(1)包含文件
在index.asp的开始部分添加下面的代码,这样在打开网页时,程序会自动连接到数据库,并进行身份验证。
(2)显示新闻类别链接
index.asp将新闻按照分类显示,每个新闻类别只显示最新的20条新闻。显示新闻类别的代码如下:
<%
Dim rs,rsCate
Set rs = Server.CreateObject("ADODB.RecordSet")
set rsCate = Server.CreateObject("ADODB.RecordSet")
'定义变量
Dim iflag,sql_where
'参数flag表示指定的新闻类别
iflag = Request.QueryString("flag")
'设置SQL语句,读取所有的新闻类别到rs.Cate
sql = "SELECT * FROM Category ORDER BY CateId"
Set rsCate = conn.Execute(sql)
'显示新闻类别链接,注意根据类别编号设置参数flag
DO WHILE Not rsCate.EOF
stitle = rsCate("CateName")
cid = rsCate("CateId")
%>|
<%=stitle%> <%
rsCate.MoveNext
Loop
%>
在调用index.asp时,参数flag表示新闻类别。如果flag=0,则显示全部新闻,否则显示指定类别的新闻。
(3)显示管理链接
在index.asp中,将根据用户类型显示管理链接,包括"更改密码"、"类别管理"、"用户管理"和"退出登录",只有Admin用户才能看到"类别管理"和"用户管理"链接。显示管理链接的代码如下:
<%
'如果为管理员则显示类别管理和用户管理
If Session("UserName") = "Admin" Then
Response.Write "
类别管理"
Response.Write "
用户管理"
sql_where = ""
Else
'如果不是系统管理员,则只能管理自己提交的新闻,所以在这里设置WHERE子句的条件
sql_where = " Poster='" & Session("UserName") & "'"
End If
%>
Session("UserName")中保存着当前登录用户的用户名。当Session("UserName")="Admin"时,才能显示"类别管理"和"用户管理"超级链接。
从程序中可以看到,各项管理功能对应的页面如下:
(1)更改密码PwdChange.asp;
(2)类别管理Cate-Admin.asp;
(3)用户管理UserList.asp;
(4)退出登录logout.asp。
变量sql_where用来记录查询条件。如果当前用户是Admin,则sql_where="",即显示所有新闻;否则设置查询条件为"Poster=""&Session("UserName")&""",即只能管理自己创建的新闻。
(4)分页显示新闻信息
下面将根据指定的新闻类别和页码显示新闻标题列表,代码如下:
<%
'根据参数iflag和sql_where变量设置SQL语句,读取新闻数据
If iflag = "" Then
If sql_where = "" Then