|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。 3、构建文章宣布部分
文章宣布模块只要两个页面,一个是后面提到的用来供应输出窗体的submit.asp,另有一个是用来处置窗体输出的subresult.asp。后面的谁人页面很复杂,基础上就是一个HTML窗体,没有甚么好讲的,上面来看看subresult.asp的内容:
<html>
<head>
<title>宣布文章</title>
<metahttp-equiv="Content-Type"content="text/html;charset=GB2312">
</head>
<bodybgcolor="#FFFFFF">
<%
author=request("author")
password=request("password")
topicid=request("topicid")
boardid=request("boardid")
content=request("content")
title=request("title")
注:这一段掏出在submit.asp中提交的表但内容,放在响应的变量中。
<html>
<head>
<title>宣布文章</title>
<metahttp-equiv="Content-Type"content="text/html;charset=GB2312">
</head>
<bodybgcolor="#FFFFFF">
<%
author=request("author")
password=request("password")
topicid=request("topicid")
boardid=request("boardid")
content=request("content")
title=request("title")
(1)查询作者是不是已存在
cmd.CommandText="select*from作者表whereid="&author&""
Setrs=cmd.Execute()
(2)反省权限
cmd.CommandText="select*from作者表whereid="&author&""
Setrs=cmd.Execute()
注:这一段是对作者权限举行反省,关于帐号不存在大概暗码毛病做出响应的毛病处置。在这儿能够看到response.end的用法,它是用来停止以后ASP剧本。分离if语句,能够对程序中的预期毛病举行处置。在一个好的WEB使用中,毛病处置是必不成少的。
(3)将材料中的单引号改成两个单引号,而且在前后加上单引号
FunctionSqlStr(data)
SqlStr=""&Replace(data,"","")&""
EndFunction
写进数据库
sql="InsertInto内容表(看板id,主题id,作者id,题目,内容)Values("
sql=sql&SqlStr(topicid)&","
sql=sql&SqlStr(boardid)&","
sql=sql&SqlStr(author)&","
sql=sql&SqlStr(title)&","
sql=sql&SqlStr(content)&")"
conn.Executesql
%>
<h2>文章已被发送到数据库,当板主审视后就能够看到了<h2>
</body>
</html>
到这儿,文章已被保留在数据库中了。可是,它其实不可以立即被显现出来,还必要版主的承认才行。上面,就来看看论坛的办理部分的内容。
4、论坛的办理部分
这儿是我们这个论坛的中心之地点,但它完成起来也没有甚么出格的中央。仍是那些老器材:窗体处置,数据库查询,在用ASP把他们无机的分离起来。当进进了文章审视形式(后面提到的板务处置)以后,最为主要的内容,应当是对版主的身份举行考证了。上面来看看版主上岸页面:
<%boardid=request("boardid")%>
(注:boardid是由进进这个页面的毗连所传送过去的,是要举行板务处置的看板的ID。经由过程它才干晓得处置的是谁人板的板务。)
Setconn=erver.CreateObject("ADODB.Connection")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("bbssystem.mdb")
Setcmd=Server.CreateObject("ADODB.Command")
Setcmd.ActiveConnection=conn
cmd.CommandText="板主暗码查询"
ReDimparam(0)
param(0)=CLng(boardid)//注:CLng不成疏忽
Setrs=cmd.Execute(,param)
boardmanager=rs("板主")
setcmd=nothing
%>
<html>
<head>
<title>UntitledDocument</title>
<metahttp-equiv="Content-Type"content="text/html;charset=GB2312">
</head>
<bodybgcolor="#FFFFFF">
<p>只要板主<%=boardmanager%>才干够进进这个中央</p>
<p>请输出考证暗码,而且为了坚持身份考证,请翻开扫瞄器的Cookies。</p>
<formmethod="post"action="managerloginrest.asp">
<inputtype="password"name="password">
<inputtype="hidden"name="boardid"value=<%=boardid%>>
<inputtype="submit"name="Submit"value="断定">
</form>
注:这个页面仅仅是用来上岸用的,它失掉斑竹输出的暗码后,其实不能举行考证,而是将考证的事情放到下一个页面中举行。实践上,暗码输出和考证的事情是能够放在一个页面中完成的,只不外程序代码的布局布置上有点贫苦。
</body>
</html>
<%
setrs=nothing
conn.close
setconn=nothing
%>
如今失掉了版主ID和输出的暗码,上面就是举行考证的事情managerloginrest.asp了,它承受下面谁人文件中窗体的内容,并举行相干处置:
<%response.buffer=true%>
注:把缓冲区设置为同意利用。这一条一样平常来讲,是应当加在每一个ASP页面的首部的,如许可以进步ASP页面的功能。在翻开了缓冲区后,ASP中另有一些响应的特别用法,在前面会说起。
boardid=request("boardid")
password=request("password")
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("bbssystem.mdb")
Setcmd=Server.CreateObject("ADODB.Command")
Setcmd.ActiveConnection=conn
cmd.CommandText="板主暗码查询"
ReDimparam(0)声明
param(0)=CLng(boardid)//注:CLng不成疏忽
Setrs=cmd.Execute(,param)
boardmanager=rs("板主")
ifpassword<>rs("暗码")then%>
<html>
<head>
<title>身份考证</title>
<metahttp-equiv="Content-Type"content="text/html;charset=GB2312">
</head>
<bodybgcolor="#FFFFFF">
暗码毛病
</body>
</html>
<%
else
session("beenthere")=boarded
注:利用Session来坚持对版主的身份考证,这必需请求客户端扫瞄器的cookie被翻开了。由于Session是经由过程cookie来完成的。在这儿,把看板ID赋给Session变量beenthere,标明版主主已经由过程了身份考证。在前面的每一个版务处置的页面中,都要反省beenthere是不是和响应的看版ID符合。
url="boardmanager.asp?boardid="&boardid
response.redirecturl因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|