首页 理论教育 ASP动态网页设计:发表帖子程序

ASP动态网页设计:发表帖子程序

时间:2023-11-05 理论教育 版权反馈
【摘要】:发表帖子是该论坛的基本功能之一。发表帖子的页面如图8-6所示。该页面只是一个纯HTML页面,但在用户填写帖子单击“发表”按钮时,对3个必须要填写的字段进行一定的检查,要求数据不能为空;否则要求用户重新填写。例如对n00001号帖子的第篇回复文章的编号就是n00001-001,对于该原文的其他回复文章按照这个规则顺序编号。如果用户的输入通过了该脚本程序的检验,则将各数据送交noteadd.asp处理。

ASP动态网页设计:发表帖子程序

发表帖子是该论坛的基本功能之一。发表帖子的页面如图8-6所示。该页面只是一个纯HTML页面,但在用户填写帖子单击“发表”按钮时,对3个必须要填写的字段进行一定的检查,要求数据不能为空;否则要求用户重新填写。

图8-6 发表帖子程序noteadd.htm的运行结果

发表帖子程序noteadd.htm 的代码如下:

〈SCRIPT IANGUAGE=VBScript〉

〈!--

Sub tijiao-onclick()

msgstr=″″

userid=trim(mynote.userid.value)

subject=trim(mynote.subject.value)

content=trim(mynote.content.value)

If userid=″″Then

msgstr=msgstr &″请输入您的姓名!″

End If

If subject=″″Then

msgstr=msgstr & ″请为您的帖子加上标题!″

End If

If content=″″Then

msgstr=msgstr &″请为您的帖子加上内容!″

End If

If msgstr〈〉″″Then

alert msgstr

exit sub

Else

mynote.submit

End If

End Sub

--〉

〈/SCRIPT〉

〈HTML〉

〈HEAD〉

〈TITLE〉发表新帖子〈/TITLE〉

〈META http-equiv=″Content-Type″content=″text/html;charset=gb2312″〉

〈STYLE〉

〈!--

.classl{font:l0pt:color:#9900CC;}

.class2{font:llpt;)

input{font:10pt:background-color:#eeeeee;border-style:solid;border-color:

#6666cc;border-width:1;}

--〉

〈/STYLE〉

〈/HEAD〉

〈BODY bgcolor=″#FFFFFF″style=″FONT:10pt″〉

〈FORM method=″post″action=″noteadd.asp″name=″mynote″〉

〈TABLEwidth=380border=0align=″center″cellspacing=″0″bgcolor=″#b0cfef″〉

〈TR〉

〈TD colspan=″2″align=″center″bgcolor=″#D8F3FE″〉〈B〉发表主题〈/B〉〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″99″align=right bgcolor=″#ffffff″〉〈FONT class=classl〉作者

〈/FONT〉〈/TD〉

〈TD width=″330″align=left bgcolor=″#ffffff″〉

〈INPUT type=text size=24 name=″userid″〉〈/TD〉

〈/TR〉

〈TR〉

〈TD align=right bgcolor=″#ffffff″〉〈FONT class=classl〉email〈/FONT〉〈/TD〉

〈TDalign=leftbgcolor=″#ffffff″〉〈INPUT type=text size=24name=″email″〉〈/TD〉

〈/TR〉

〈TR〉

〈TD align=right bgcolor=″#ffffff″〉〈FONT class=classl〉主题〈/FONT〉〈/TD〉

〈TD align=left bgcolor=″#ffffff″〉〈INPUT type=text size=24 name=″subject″〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD align=right bgcolor=″#ffffff″〉〈FONT class=classl〉内容〈/FONT〉〈/TD〉(www.xing528.com)

〈TD align=left bgcolor=″#ffffff″〉

〈TEXTAREA name=″content″cols=″31″rows=″4″〉〈/TEXTAREA〉

〈/TD〉

〈/TR〉

〈tr〉

〈TD colspan=″2″align=″center″〉

〈INPUT type=button name=″tijiao″value=″发表″〉

〈INPUT type=reset name=″reset″value=″重写″〉

〈/TD〉

〈/TR〉

〈/TABLE〉

〈/FORM〉

〈/BODY〉

〈/HTML〉

程序中采取如下的编号方案:对原文采取顺序编号方案,即从n00001开始,顺序编号;对于回复文章首先在其原文编号的基础上生成回复文章的编号。例如对n00001号帖子的第篇回复文章的编号就是n00001-001,对于该原文的其他回复文章按照这个规则顺序编号。

如果用户的输入通过了该脚本程序的检验,则将各数据送交noteadd.asp处理。

noteadd.asp的代码如下:

〈!--#Include file=″config.inc″--〉

〈%

Set conn=Server.createobject(″adodb.connection″)

Conn.open connstring

Set objnoters=Server.createobject(″adodb.recordset″)

Set objnoters2=Server.createobject(″adodb.recordset″)

ssql=″select max(noteid)as maxid from notetable″

ssgl2=″select*from notetable″

userid=trim(request.form(″userid″))

email=trim(request.form(″email″))

content=trim(request.form(″content″))

subject=trim(left(request.form(″subject″),17))

Application.Lock

Objnoters.open ssgl,conn,1,3

If Objnoters.eof or isnull(Objnoters(″maxid″))Then

noteid=″n00001″

Else

temp=left(Objnoters(″maxid″),6)

temp=right(temp,5)

temp=cint(temp) ′取得当前数据表中编号最大的原文帖子

temp=cstr(temp+l)

For length=l to 5-len(temp) ′帖子的编码位数是5位

temp=″0″&temp

Next

noteid=″n″&temp ′完成对这次帖子序号的计算

End If

notetime=now() ′取得当前时间作为发帖时间

′插入数据库

insertstr=″insert into notetable values(′″&noteid&″′,′″&subject&″′,′″&userid&″′,′″&notetime&″′,′″&content&″′,0,′″&email&″′,0);″

Objnoters2.open insertstr,conn,1,3

Application.Unlock

′关闭这次数据库连接

Objnoters.close

Set Objnoters=nothing

Conn.close

Set conn=nothing

%〉

〈HTML〉

〈HEAD〉〈TITLE〉发帖成功〈/TITLE〉〈/HEAD〉〈BODY〉

〈FONT style=″font:l0pt″color=#9900CC〉发贴成功,〈A href=″vbscript:window.close()″〉

it继续〈/A〉〈/FONT〉

〈/BODY〉

〈/HTML〉

noteadd.asp运行结果如图8-7所示。

图8-7 noteadd.asp程序运行结果

程序的基本原理:首先用一系列的参数接收发表帖子页面的表单传递的信息;然后根据数据库中的已有信息计算这次帖子的帖子编号,获取系统时间作为发表时间,最后将这一系列的参数值插入到数据库中。

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

我要反馈