第一章：一个简单的留言簿

从本章开始我们将由一个简单的，利用文件储存访问留言的留言簿程序进入我们的教程。编写这样一个留言簿，我们大致可以从以下三个步骤来完成。 步骤一：先设计一个留言表单的网页（如：guestbook1.asp，这不用我在这儿说教了吧？)。见下图：
步骤二：在设计好留言表单后，我们开始进行编写处理留言的ASP程序。 我们要编写处理留言的ASP程序，最重要的问题是如何实现存取留言。而在ASP程序中，要存取文件，我们必须建立FileSystemObject对象（该对象主要用于读取Unicode或ASCII码的文件）。而要建立FileSystemObject对象，我们又可以使用以下的语句： SET 对象实例 = CREATEOBJECT（"SCRIPTING.FILESYSTEMOBJECT") FileSystemObject对象的方法包括：CreateTextFile 和OpenTextFile： CreateTextFile ：建立一个文件名称，并返回一个TextStream对象提供你读写文件 OpenTextFile ：打开一个已存在的文件并建立一个TextStream对象以供你读写文件 　　在建立并打开一个可供编辑的文件后，我们最后可以调用TextStream对象下的方法WriteLine(把信息写入到已打开的文件中并换行)和方法ReadLine(读取已打开文件的一行信息)来存取文件。 因此，要实现存取留言的ASP程序，我们可以大致构思如下： 先建立FileSystemObject对象；然后通过该对象来调用OpenTextFile打开文件或者调用CreateTextFile来创建新的文件，建立TextStream对象；最后我们再进行调用TextStream对象的WriteLine和ReadLine进行存取文件。解决了这个主要问题后，我们可以将处理留言的ASP程序写成如下所示：
< %
Name = Request("Name") ) Email = Request("Email") Subject = Request("Subject") Memo = Request("Memo")
'从留言表单取得数据
If Name = "" Or Email = "" Or Subject = "" Or Memo = "" Then Response.Write "输入框不能为空白!" Response.End End If
'检查表单的各输入框是否有信息输入，若留有空输入框没填则显示说明信息："输入框不能为空白!" 并停止执行下面的程序。?
Line1 = "留言人：" & Name Line1 = Line1 & String(5, "　") Email = "< A HREF=mailto:" & Email & ">" & Email & "< /A>" Line1 = Line1 & "Email" & Email & "< BR>" Line2 = "主 题：" & Subject & "< BR>"
Memo = Replace( Memo, vbCrLf, "< BR>" ) Line3 = "< TABLE BORDER=1>< TR>< TD>" Line3 = Line3 & "您的留言：" & Memo & "< /TD>< /TR>< /TABLE>" Line4 = "时 间：" & Now()
'定义留言的显示格式，其中留言信息用信息框框起来。
On Error Resume Next
'避免如果执行下面的ReadAll（读取已打开文件的全部信息）时，无法读取信息就造成的程序错误的情况发生，因此加入此句用于忽略所有的错误。
Set fso = Server.CreateObject("Scripting.FileSystemObject") Application.Lock TxtPath = Server.MapPath("book1.txt") NewPath = Server.MapPath("newbook.txt") fso.MoveFile TxtPath, NewPath Set fin = fso.OpenTextFile(NewPath, , True) Set fout = fso.CreateTextFile(TxtPath)
'建立 FileSystemObject对象，并锁定Application对象，不让任何两位上网者同时执行留言操作，同时建立和打开一个TextStream对象，指向要对其实行僮鳎糜诹粞约锹嫉奈谋綽ook1.txt。
fout.WriteLine Line1 fout.WriteLine Line2 fout.WriteLine Line3 fout.WriteLine Line4 fout.WriteLine "< hr>" fout.WriteLine fin.ReadAll
'把留言表单中的信息分行写入到已打开的文件中。
fin.Close fso.DeleteFile NewPath, True Application.UnLock Response.Redirect "guestbook1.asp"
'关闭并删除gbookold.txt，然后解除Application对象的锁定，再指引客户端浏览器到新的Web页面guestbook1.asp。
%>
将上述代码COPY到你的记事本，注意：要记得将所有“<”符号后面多加的空格去掉，然后存成文件manage1.asp。
步骤三：设计留言页面 因为我们要本留言簿的留言显示在留言表单下面，所以我们可以将以下HTML代码COPY到guestbook1.asp的最后面。
< html> < head> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < title>您的留言< /title> < link rel="stylesheet" href="../images/Text.css"> < /head> < body TEXT="#000000" BGCOLOR="#FFFFFF" BACKGROUND="b01.jpg"> < h2 ALIGN="CENTER">您的留言< /h2> < hr noshade color="red"> < !--#include file="book1.txt" --> < /body> < /html> < % Response.End %>
完成上述的所有步骤后，将guestbook1.asp和manage1.asp保存在WEB服务器的可执行虚拟目录（如：asp/)下，并在浏览器中用HTTP的方式进行浏览，如：http://yourcomputername/asp/guestbook1.asp。瞧！就这么简单，你已经有了自己的留言簿了。还不赶快试试！