用ASP编写留言板

Author: 夏敏捷 Date: 2001年 7期

?牐犗旅娓桓鲇肁SP编写的留言板程序的完整代码。
  ?牐燝uestbook.htm为客户在浏览器中看到的交互式表单页面,其源代码如下:
  ?牐?<html>
  ?牐?<head><title>留言板</title></head>
  ?牐?<body>
  ?牐?<center><h2>请留下您的建议</h2>
  ?牐?<Form method ="post" action ="Guestbook.asp">
  ?牐犇拿?:<input type =text name="Name" size=33><br>
  ?牐犇腅mail:<input type =text name="email" size=32><br>
  ?牐犞魈猓?<input TYPE="TEXT" NAME="Subject" SIZE="36"><br>
  ?牐犃粞阅谌?: <br><textarea name ="Memo" COLS=60 ROWS=10></textarea><p>
  ?牐?<input TYPE="Submit" NAME="SEND" VALUE="提交留言">
  ?牐?<input TYPE="RESET" VALUE="清除重写">
  ?牐?<p>
  ?牐?<a HREF="databook.asp">浏览留言</a>
  ?牐?</form></center> </body></html>
  ?牐犜赿atabook.htm文档中存储的是各位来宾的留言,特殊之处是在文件中要使用一个定位字符串“<!----->”将文件的开始部分和具体的客户留言部分分开。ASP程序将在“<!----->”所在的位置之后插入客户的留言。
  ?牐燿atabook.htm的源文件为:
  ?牐?<html><head><title>看留言</title></head>
  ?牐?<body text="#00000" vlink="#990099" link="#333399">
  ?牐?<center><h1>查看留言</h1></font></center>
  ?牐?<!----->
  ?牐?<留言插入位置>
  ?牐?</body></html>
  ?牐犝庋钚碌牧粞猿鱿衷谝趁娴淖钌隙耍蝗绻炎钚碌牧粞苑旁谝趁娴南露耍蛑恍杞渲械亩ㄎ蛔址?<!----->”移到客户留言部分和HTML文件结尾部分之间的位置就行了。
  ?牐犘枳⒁獾氖牵?<!----->字符串一定要单独占一行。
  ?牐燝uestbook.asp文件:
  ?牐?<%
  ?牐牐? 读取各输入框的数据
  ?牐燦ame = Request("Name")??
  ?牐燛mail = Request("Email")??
  ?牐燬ubject = Request("Subject")??
  ?牐燤emo = Request("Memo")??
  ?牐牐? 检查各输入框是否输入有数据
  ?牐營f Name = ""  Or Memo = "" Then
  ?牐燫esponse.Write "输入框不能为空白!"
  ?牐燫esponse.End '不再处理以下的程序
  ?牐燛nd If
  ?牐牐? 第一行包含"姓名"与"Email"
  ?牐燣ine1 = "留言人:" & Name
  ?牐燣ine1 = Line1 & String(5, " ")   ' 插入5个汉字空格
  ?牐燛mail = "<A HREF=mailto:" & Email & ">" & Email & "</A>"
  ?牐燣ine1 = Line1 & "Email(Viii)" & Email & "<BR>"
  ?牐牐? 第二行
  ?牐燣ine2 = "主 题:" & Subject & "<BR>"
  ?牐牐? 第三行为"留言",先将留言中的换行符vbCrLf 换成<BR>
  ?牐燤emo = Replace( Memo, vbCrLf, "<BR>") ??
  ?牐牐? 为了显示不同的背景颜色,采用表格输出
  ?牐燣ine3 = "<TABLE BORDER=0 BGCOLOR=#00FFFF><TR><TD>"
  ?牐燣ine3 = Line3 & Memo & "</TD></TR></TABLE>"
  ?牐牐? 第四行为留言"时间"
  ?牐燣ine4 = "时 间:" & Now?煟?
  ?牐燨n Error Resume Next ' 忽略所有的错误
  ?牐牐? 建立 FileSystemObject对象
  ?牐燬et fso = Server.CreateObject("Scripting.FileSystemObject")??
  ?牐燗pplication.Lock
  ?牐牐? 取得databook.html及databookold.html的完整路径
  ?牐燜ilePath = Server.MapPath("databook.html")??
  ?牐燨ldFilePath = Server.MapPath("databookold.html")??
  ?牐牐? 将databook.html更名为databookold.html
  ?牐爁so.MoveFile FilePath, OldFilePath
  ?牐牐? 打开databookold.html
  ?牐燬et fin = fso.OpenTextFile(OldFilePath, ,True)??
  ?牐牐? 建立databook.html
  ?牐燬et fout = fso.CreateTextFile(FilePath)??
  ?牐牐? 将留言簿中字符串"<!----->"前面的内容写入文件
  ?牐燚o
  ?牐爏tr=fin.readline
  ?牐爁out.WriteLine str
  ?牐燣oop While str <> "<!----->"
  ?牐牐? 写入访问者留言
  ?牐爁out.WriteLine Line1
  ?牐爁out.WriteLine Line2
  ?牐爁out.WriteLine Line3
  ?牐爁out.WriteLine Line4
  ?牐爁out.WriteLine "<HR>"
  ?牐牐? 将留言簿中以前的留言内容写入databook.html文件
  ?牐燿o while fin.atendofstream=false
  ?牐爏tr=fin.readline
  ?牐爁out.WriteLine str
  ?牐爈oop
  ?牐牐? 关闭databookold.html
  ?牐爁in.Close
  ?牐牐? 删除databookold.html
  ?牐爁so.DeleteFile OldFilePath, True
  ?牐燗pplication.UnLock
  ?牐牐? 将网页导至"浏览留言"的网页databook.asp
  ?牐燫esponse.Redirect "databook.asp"
  ?牐?%>
  ?牐燿atabook.asp文件:显示留言内容
  ?牐?<html>
  ?牐?<head>
  ?牐?<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  ?牐?<title>访问者留言簿</title>
  ?牐?</head>
  ?牐?<body TEXT="#000000" BGCOLOR="#FFFFFF" BACKGROUND="b01.jpg">
  ?牐?<h2 ALIGN="CENTER">留言簿</h2>
  ?牐?<!--#include file="databook.html"-->
  ?牐?<hr WIDTH="100%">
  ?牐?<a HREF="guestform.html">
  ?牐?<p align="center">返回留言表单</a></p>
  ?牐?</body>
  ?牐?</html>