從本章開始我們將由一個簡單的,利用文件儲存訪問留言的留言簿程序進入我們的教程。編寫這樣一個留言簿,我們大致可以從以下三個步驟來完成。
步驟一:先設計一個留言表單的網頁(如: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對象,指向要對其實行操作,用於留言記錄的文本book1.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。瞧!就這麼簡單,你已經有了自己的留言簿了。還不趕快試試!