ASP进阶之文章在线管理更新(八)(转)

前面已经介绍了文章管理系统的前台程序,其前台程序主要就是提供给大家浏览的页面,主要是文章浏览、文章搜索、转发EMAIL等程序,其实开始介绍的文章添加和保存实际上是本系统的后台程序,但是文章的显示的具体内容是和文章的搜集、添加、保存是分不开的,要不然何来文章显示?我们现在开始介绍的文章管理系统的后台程序将具有以下功能:管理员登陆验证、文章在线添加(前面已经介绍过)、文章在线修改删除、管理员密码修改、文章栏目修改添加及删除等主要功能,下面我们就从系统的管理员登陆和验证开始一步步讲述。

现在的一般登陆程序都是要有一个输入管理员姓名、密码页面和一个验证页面,这样即使你知道了登陆页面也无法知道验证页面的内容,当然我们的密码并不是存在于验证页面上的,而是在数据库中,这样做对本程序的实际意义并不是很大,但是你既然知道这个过程,那么在别的没有数据库情况下,这样做就很有必要了!

好了,下面我们还是来开始介绍程序吧,首先我先简单介绍一下登陆页面login.asp,这个页面很简单,所以我也只是简单介绍一下:



管理者登陆





 
bordercolordark="#ecf5ff" bordercolorlight="#6699cc">
用户名:
密 码:size="20">


 

 






上面的程序很简单,都是HTM的结构,我就不多说了,下面我来讲讲验证用户名和密码的页面chklogin.asp

"打开并建立数据库连接
<!--#include file=conn.asp--&gt
dim sql
dim rs
dim founduser
dim username
dim password
dim errmsg
dim founderr
founderr=false
FoundUser=false
"接受从login.asp返回的用户信息username,password
username=trim(request.form("username"))
password=trim(Request.Form("password"))
"假如用户名username和密码password都为空,则返回login.asp页面
if username="" then
response.redirect "login.asp"
end if
if password="" then
response.redirect "login.asp"
end if
"利用username打开记录集admin中指定的记录
set rs=server.createobject("adodb.recordset")
sql="select * from admin where username='"&username&"'"
rs.open sql,conn,1,1
if not rs.eof then
"在指定记录中假如返回的密码password和数据库中的密码相等,则将页面导向管理页面manage.asp,这里的response.cookies("adminok")=true是当用户为正确的时候,确认一个cookies,这样可以下次不用登陆直接可以进入管理页面
if password=rs("password") then
response.cookies("adminok")=true
response.redirect "manage.asp"
else
"假如密码不正确,把页面导向登陆页面login.asp
response.redirect "login.asp"
end if
else
response.redirect "login.asp"
end if
"关闭数据库连接
rs.close
conn.close
set rs=nothing
set conn=nothing
%>

通过了密码验证以后就进入了文章管理系统的管理主页面,下一节的内容就是管理页面的主要结构和功能。

mydear 发表于:2007.08.11 13:49 ::分类: ( 一般分类 ) ::阅读:(0次) :: 评论 (0)
--&gt
===========================================================
ASP进阶之文章在线管理更新(七)(转)
===========================================================
经过了文章的添加、保存、显示,那么现在应该来谈谈关于管理程序的显示主页面,也就是显示所有文章的标题连接,以方便浏览者查找文章,其应该具有的功能有:显示所有文章的标题连接,加入日期,浏览次数等信息,另外还必须提供分页功能,要不然这么多的文章标题在一个页面都显示出来,那将非常的费时且不便浏览,另外由于本程序在这里结合了文章分栏目搜索的功能,所以在这里也将一起介绍了。

下面就为大家详细的介绍主页面index.asp的这些功能的实现过程以及其具体功用:

"建立数据库连接
<!--#include file="conn.asp"--&gt




ASP专题栏目





"定义每页最大文章标题显示量MaxPerPage,你可以自己修改这里的数字来达到你的最佳显示效果
const MaxPerPage=18
dim totalPut
dim CurrentPage
dim TotalPages
dim i,j

"假如返回的页面信息是空的,也就是如果你直接输入index.asp,那么就用这里定义的页数第一页
if not isempty(request("page")) then
currentPage=cint(request("page"))
else
currentPage=1
end if
dim sql
dim rs
dim rstype
dim typesql
dim typeid,typename

"如果返回的栏目信息为空,那么就用这里定义的栏目,这里指定的是第三个栏目
if not isEmpty(request("typeid")) then
typeid=request("typeid")
else
typeid=3
end if

"通过返回的栏目typeid号,打开数据库显示指定的栏目,并把其值交给typename
set rstype=server.createobject("adodb.recordset")
typesql="select * from type where typeID="&cstr(typeid)
rstype.open typesql,conn,1,1
typename=rstype("type")
rstype.close
%>







"显示栏目信息,当你点击了任何一个栏目,在typename的位置都会显示相关信息,这里没有采用栏目的自动显示方式是考虑了页面的显示效果,而采用手工添加的模式,要想采用自动模式,就自己写吧:)相信你学习到现在,不会连这个都编不出来吧!
动网ASP技巧专题>>

ASP FAQASP组件ASP文摘ASP实例ASP安全




"打开指定的记录集article并按照文章的加入日期排序,在这里打开有两个条件,一个是利用like来查询数据库并显示相关文章标题,还有就是通过返回的typeid显示指定栏目的文章
sql="select * from article where title like '%"&request("txtitle")&"%' and typeid="+cstr(typeid)+" order by date desc"
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1

"如果查询数据库的结果指向记录集的开始或者结尾,表示数据库中没有任何相关文章
if rs.eof and rs.bof then
response.write "

没有或没有找到任何文章

"
else
"如果数据库内有内容,则取得数据库内文章数目
totalPut=rs.recordcount
"假如页面参数currentpage小于1,则指定为1
if currentpage<1 then
currentpage=1
end if
"利用文章总数和每页最大文章数算得分页的页数
if (currentpage-1)*MaxPerPage>totalput then
if (totalPut mod MaxPerPage)=0 then
currentpage= totalPut MaxPerPage
else
currentpage= totalPut MaxPerPage + 1
end if

end if
"如果分页的页数为1或者页面数减1乘与页面最大文章数小于文章总数,则用已经做好的function showpage在showContent子程序也就是显示文章标题部分的上面和下面显示分页程序
if currentPage=1 then
showpage totalput,MaxPerPage,"index.asp"
showContent
showpage totalput,MaxPerPage,"index.asp"
else
if (currentPage-1)*MaxPerPagers.move (currentPage-1)*MaxPerPage
"定义书签
dim bookmark
bookmark=rs.bookmark
showpage totalput,MaxPerPage,"index.asp"
showContent
showpage totalput,MaxPerPage,"index.asp"
else
currentPage=1
showpage totalput,MaxPerPage,"index.asp"
showContent
showpage totalput,MaxPerPage,"index.asp"
end if
end if
rs.close
end if

set rs=nothing
"显示文章标题及相关数据库内容子程序
sub showContent
dim i
i=0

%>
ID号文章标题加入日期点击

&typeid=')">

>>分页 "

"如果当前页数小于2,则显示的文章首页和上一页不显示连接,否则用当前页数减去1来显示上一页,直接用page=1来显示首页
if CurrentPage<2 then
response.write "首页 上一页 "
else
response.write "首页 "
response.write "上一页 "
end if

"假如分页页数小于1,则直接显示下一页和尾页,否则用当前页数加上1来显示下一页,用已经算出的文章分页数N显示文章的尾页
if n-currentpage<1 then
response.write "下一页 尾页"
else
response.write ""
response.write "下一页
尾页"
end if

"用N和maxperpage显示文章的分页数和每页的文章数
response.write " 页次:"&CurrentPage&"/"&n&"页 "
response.write " 共"&totalnumber&"篇文章 "&maxperpage&"篇文章/页 "

"直接输入文章所在页面转到相关页面
response.write " 转到:"
response.write "

"
end function
%>

"文章搜索相关程序


"把输入的查询字符赋值给txtitle,这样在前面的显示文章语句就起了作用title like '%"&request("txtitle")&"%'

标题:

"显示与文章相关的栏目信息,可以选择一个进行查询,这里的typeid也赋值给了typeid,以使前面的显示文章的程序对需要显示内容做出判断
typesql="select * from type"
rstype.open typesql,conn,1,1
do while not rstype.eof
sel="selected"
response.write ""+rstype("type")+""+chr(13)+chr(10)
rstype.movenext
loop
rstype.close
set conn=nothing
%>










在这里顺便介绍一下关于打开文章的程序openarticle.asp,这个也是一个更新数据库内容(update浏览数)和重定向文件。很简单,所以这里只是简单介绍一下它的程序内容:


"打开数据库连接
<!--#include file="conn.asp"--&gt
dim sql
dim rs
dim articleid
"利用update从文章连接处返回的文章号ID更新指定文章的浏览数,以及利用response.redirect重定向文章的连接
articleid=request("id")
set rs=server.createobject("adodb.recordset")
sql="update article set hits=hits+1 where articleID="&articleid
rs.open sql,conn,1,1
rs.close
conn.close
response.redirect "list.asp?id="&articleid
%>

好了,关于文章的显示首页面就完成了,它可以显示文章的标题,加入日期等文章相关信息,另外还结合了文章的分栏目搜索查询功能。在这里你会发现,利用ASP对数据库进行查询并不是一件很难的事情,只要利用一个like就可以轻易实现,文章管理的前台程序我们已经基本完成,下面该来介绍管理系统的后台程序了。下一节我们将从管理员的密码及密码验证开始介绍管理系统的后台程序

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7178747/viewspace-161817/,如需转载,请注明出处,否则将追究法律责任。

user_pic_default.png
请登录后发表评论 登录
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%><%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看
<%}%>
<%}%> <%}%>

转载于:http://blog.itpub.net/7178747/viewspace-161817/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>