如果你擁有自己的網站,是不是經常同其它人交換友情連結?每次當你用手工的方法添加他人連結的時候,有沒有想過擁有一套能自動登記網站資訊併產生友情連結頁面的自動友情連結系統?如果這兩個問題的答案都是“Yes”,那麼,請跟我來,你很快會得償心愿的。
一個自動友情連結系統至少應該具備兩個功能:一是能採集並儲存網站資訊;另一點就是能根據儲存的資訊自動產生Web頁面。要實現這兩個功能,僅僅用HTML語言顯然是不夠的,必須藉助於其它方法,比如用CGI或ASP編程。
目前國外已有服務商提供現成的CGI程式,用來自動產生友情連結,這些程式當然可以滿足上面兩點基本要求,但它至少有兩個缺點:一是速度慢,CGI程式本身效率就不很高,再加上還要訪問國外網站,最終的速度就可想而知了。另一點就是缺乏靈活性,別人的CGI程式是死的,使用者基本上沒有多少改變的餘地,這樣就無法建立富有個性的頁面。
而使用ASP(Active Server Pages)技術則可以彌補上述不足。ASP代碼不僅具有充分的靈活性,而且執行速度也比CGI程式要快,因此ASP是網站主人一個合適的選擇。
一、用
ASP實現自動友情連結簡單的原理。
1、友情網站的資訊收集
為了收集友情網站的各種資訊(包括姓名、網站名稱、地址等),我們只需使用標準HTML的Form技術即可。即在頁面中放置一個Form,其中放置若干個文字框和一個“提交”按鈕,文字框供使用者輸入資訊,Form的Action屬性設定為資訊處理頁面的名稱,即asp檔案的名稱(下例中的autolink.asp),資料轉送的方法Method設定為Post。
2、友情網站資訊的儲存
autolink.asp檔案執行時,首先使用Request對象的form屬性讀取各個參數;然後用Server對象的CreateObject方法建立一個ADO(Active Data Object)對象,並根據資料庫的類型、位置、名稱等設定相應的DNS,再使用ADO對象的Open方法建立資料庫連接;串連建立完成後,使用一條標準的SQL語句向資料庫中添加一條記錄(SQL語句中嵌入變數的寫法請參照下面的代碼)。這樣就實現了儲存資訊的目的。
3、友情連結頁面的產生
為了讀取資料庫的資訊,首先要使用SQL語句建立一個記錄集rs,然後用rs的Field屬性讀取每個欄位內容,並根據欄位的值產生標準的HTML語句。
二、執行個體
下面是一個具體的執行個體。
首先,我們需要建立一個資料庫,用來存放所有友情網站的資訊,本例我們用Access建立一個簡單的資料庫autolink.mdb,該資料庫僅包含一個表autolink,表的結構如下:
欄位名 |
資料類型 |
欄位長度 |
必要欄位否 |
欄位描述 |
name |
字元型 |
20 |
Yes |
網站的名稱 |
address |
字元型 |
60 |
Yes |
網站的地址 |
logoaddress |
字元型 |
60 |
Yes |
網站標識表徵圖的地址 |
description |
字元型 |
120 |
Yes |
網站的簡短介紹 |
接下來,我們需要建立兩個頁面:autolink.htm和autolink.asp。
autolink.htm是一個標準的HTML頁面,用來收集其它網站的資訊,其代碼如下(為節約版面,代碼中省去了所有的修飾語句和資料完整性檢查語句):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>自動連結系統--請輸入您的網站資料</title>
</head>
<form method="post" action="autolink.asp">
<p>網站名稱:<input type="text" name="name" ></p>
<p>網站地址:<input type="text" name="address"></p>
<p>表徵圖地址:<input type="text" name="logoaddress"></p>
<p>網站描述:<textarea rows="2" name="description"></textarea></p>
<p><input type="submit" value="填好了,提交" name="Submit"> </p>
</form>
</body>
</html>
以上代碼建立了包含三個單行文字框、一個多行文字框和一個提交按鈕的表單(Form),這個表單負責接收使用者的輸入(包括網站名稱、地址、表徵圖和描述),當使用者按下“提交”按鈕時,表單將使用者輸入的資訊用Post方法傳送給autolink.asp頁面。由於是純Html頁面,因此我們可以非常輕鬆的使用諸如FrontPage 98之類的視覺化檢視產生這些代碼。
autolink.asp頁面的代碼如下(同樣省去了修飾語句):
<%@ Language=VBScript %>
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<title>我的友情連結</title>
</head>
<body>
<%
name=Request.form("name")
address=Request.form("address")
logoaddress=Request.form("logoaddress")
description=Request.form("description")
'建立資料庫連接
set conn=server.CreateObject("adodb.connection")
myDSN="DRIVER={Microsoft Access Driver (*.mdb)};"
myDSN=myDSN & "dbq=" & server.MapPath("autolink")
Conn.Open myDSN
'增加一個記錄
sqlstring="insert into autolink (name,address,logoaddress,description) values("
sqlstring=sqlstring & "'" & name & "','" & address & "','" & logoaddress & "','" & description & "')"
Conn.Execute sqlstring
'開啟記錄集
sqlstring="select * from autolink"
set rs=Conn.Execute(sqlstring)
%>
<table border="1" width="72%" cellpadding="2">
<tr>
<td width="27%">網站名稱</td>
<td width="73%">網站表徵圖和連結</td>
</tr>
<% do while not rs.eof%>
<tr>
<td width="27%"> <%=rs("name")%> </td>
<td width="73%">
<a href="<%=rs("address")%>">
<img src="<%=rs("logoaddress")%>" alt="<%=rs("description")%>"></a></td>
</tr>
<%
rs.movenext
loop
%>
</table>
'關閉串連
<%
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>
將上面兩個檔案和資料庫檔案上傳到伺服器上,用瀏覽器開啟autolink.htm,畫面如。
填寫完畢後,按下“提交”按鈕,出現右圖畫面,表明資料已被正確記錄,並產生了正確的Html頁面。
對於本文的例子,讀者只需稍加修改,就可以將它應用在實際中。