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

ASP动态网页设计:回复帖子程序

时间:2023-11-05 理论教育 版权反馈
【摘要】:回复帖子的主题根据回复的对象,在对象主题之前加上re:组合而成。在填写完回复信息之后,将所有信息通过参数传递给帖子回复处理程序backinsert.asp。作为帖子回复的主题,它是在noteback.asp中生成的,并且为了规范起见,同样将主题的长度限制在17个字符之下。图8-9回复帖子noteback.asp程序运行结果如果用户的回复信息完全规范并且通过了脚本程序的检验,这些数据被传递到backin

ASP动态网页设计:回复帖子程序

用户在帖子回复表单中填写了自己的姓名、信箱及详细回复内容后,再通过一些脚本的验证,就可以完成对帖子的回复。

回复帖子的主题根据回复的对象,在对象主题之前加上re:组合而成。在填写完回复信息之后,将所有信息通过参数传递给帖子回复处理程序backinsert.asp。作为帖子回复的主题,它是在noteback.asp中生成的,并且为了规范起见,同样将主题的长度限制在17个字符之下。同添加新帖子一样,回复的数据也必须按照数据库设置的要求,在处理之前进行一定的检验工作。具体的noteback.asp的程序如下:

〈SCRIPTLANGUAGE=VBScript〉

〈!--

Sub tijiao_OnClick ()

Dim msgstr

Dim userid

Dim email

Dim subject

msgstr=″″

userid=trim(noteback.userid.value)

email=trim(noteback.email .value)

subject=trim(noteback.subject .value)

If userid=″″Then

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

End If

If email=″″Then

msgstr=msgstr & ,请输入您的 Email !″

End If

If subject=″″Then

msgstr=msgstr & ″请为您的留言加上标题″

End If

If msgstr〈〉″″Then

alert msgstr

exit sub

Else

noteback.submit ()

End If

End Sub

- - 〉

〈/SCRIPT〉

〈%

noteid=Request .querystring (″noteid″)

subject=left (″re :″ & Request .querystring (″subject ″),15)

′Response .write subject

%〉

〈HTML〉

〈HEAD〉

〈TITLE〉回复留言〈/TITLE〉

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

〈STYLE〉

〈!- -

.classl {font :l0pt ;color :#99000C;}

.class2{font :llpt ;}

.class3{background-color :#eeeeee;border-style :solid;border-color :#6666cc :border-width :l;}

- - 〉

〈/STYLE〉

〈/HEAD〉

〈BODY bgcolor=″#FFFFFF″style=″font :l0pt″topmargin=8〉

〈DIV id=″floater″align=″center″style=″left :l5px;top:2px;width:280;font :l0pt″〉

〈TABLE width=360 border=0 cellspacing=″1″bgcolor=″#b0cfef″〉

〈TR〉

〈TD align=center bgcolor=″#D8F3FE″〉

〈B〉〈font color=#669900 class=class2〉回复主题〈/FONT〉〈/B〉

〈/TD〉

〈/TR〉

〈TR〉

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

〈FORM action=″backinsert .asp″ method=″post″ name=″noteback″〉

〈INPUT type=hidden name=noteid value=〈%=noteid%〉〉

〈P align=″center″〉

〈FONT class=classl〉您的昵称〈/font〉&nbsp

〈INPUT name=″userid″size=″22″maxlength=20 class=class3〉〈BR〉

〈font class=classl〉您的信箱〈/FONT〉&nbsp

〈INPUT name=″email″size=″22″class=class3〉〈BR〉

〈FONT class=classl〉留言主题〈/font〉&nbsp

〈INPUT name=″subject″ size=″22″class=class3 value=〈%=subject%〉〉〈BR〉

〈FONT class=classl〉〈FONT color=#FFOOFF〉(*留言主题请 不要超过 17 个字*)〈/FONT〉

〈/FONT〉

〈BR〉〈FONT class=classl〉详细内容〈/FONT〉 〈BR〉

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

〈P align=″center″〉〈A name=″tijiao″〉 〈FONT color=#7070ff class=classl style=″cursor :hand″〉完成 |〈/FONT〉〈/A〉

〈A href=″Java Script :document .forms [0 .reset ()″〉〈font color=#7070ff class=classl style=″text-decoration:none″〉重写 |〈/FONT〉〈/A〉

〈A href=″VBScript :window.close ()″〉〈font color=#7070ff class=classl style=″text-decoration:none″〉关闭   〈/FONT〉〈/A〉(www.xing528.com)

〈/FORM〉

〈/TD〉〈/TR〉

〈/TABLE〉

〈/DIV〉

〈/BODY〉

〈/HTML〉

回复帖子noteback.asp程序运行结果如图8-9所示。

图8-9回复帖子noteback.asp程序运行结果

如果用户的回复信息完全规范并且通过了脚本程序的检验,这些数据被传递到backinsert.asp,并把这些回复性数据插入到数据库中。

插入的程序很简单,重要的就是如何计算回复的文章的编号。首先,判断所回复的原文编号,然后在数据库中找到当前已经存在的所有该原文的回文中编号最大的一个,并把这个最大的编号加1,作为此次回帖子的编号。具体的backinsert.asp程序如下:

〈!--#Includefile=″config.inc″--〉

〈%

回复留言

noteid=Request.form(″noteid″)

subject=trim(Request .form(″subject ″))

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

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

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

notetime=now()

readnum=0

status=-1

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

Conn.open connstring

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

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

Ssqll=″select * from notetable″

Application.lock

′计算机回复留言的编号表达式

noteid=left (noteid,6)

ssq12=″select * from notetable where noteid like ′″& noteid & ″%′″Objnoters2.open ssg12,conn,1,3

If objnoters2.eof Then

Response.write ″您正在回复的帖子已被 除,请〈A href=″″vbscriptwindow.close ()″″〉返回〈/A〉″

Response .end

End If

Objnoters2.movelast

If len (objnoters2 (″noteid″))=6 Then

noteid=objnoters2 (″noteid″)&″-001″

Else

temp=cint (right (objnoters2 (″noteid″),3))

temp=cstr (temp+l)

For length=l to 3-len (temp)

temp=″0″&temp

Next

noteid=left (objnoters2 (″noteid″),7)&temp

End If

Objnoters2.close

Set Objnoters2=nothing

Objnoters .open ssqll,conn,1,3

Objnoters .addnew

Objnoters (″noteid″)=noteid

Objnoters (″subject″)=subject

Objnoters (″userid″)=userid

Objnoters (″email″)=email

Objnoters (″notetime″)=notetime

Objnoters (″content″)=content

Objnoters (″readnum″)=readnum

Objnoters (″status″)=status

Objnoters .update

Application.Unlock

′关闭数据库连接

Conn.close

Set conn=nothing

Set Objnoters=nothing

%〉

〈HTML〉

〈HEAD〉〈TITLE〉回复成功〈/TITLE〉〈/HEAD〉〈BODY〉

〈FONT style=″font :10pt″〉回复成功 ,请〈A href=″vbscript :window.close ()″〉返 回〈/A〉

〈/FONT〉

〈/BODY〉

〈/HTML〉

backinsert.asp 运 行 结果如 图 8-10 所 示 。

图8-10backinsert.asp运行结果

至此,该论坛的程序编制工作全部完成的。本节介绍的论坛比较简单,只是给大家一个基本的轮廓,有兴趣的同学可以在此基础上实现更多的功能。

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

我要反馈