從本章開始我們將由一個簡單的,利用檔案儲存訪問留言的留言簿程式進入我們的教程。編寫這樣一個留言簿,我們大致可以從以下三個步驟來完成。
步驟一:先設計一個留言表單的網頁(如: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。瞧!就這麼簡單,你已經有了自己的留言簿了。還不趕快試試!