用ASP编写留言板
?牐燝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>