好了,下里具體講講我的留言本怎么做的吧。(第一次寫教程,還不懂怎么開頭)
為了方便管理,這是一個基于數據庫的留言本程序,先看看我的庫結構,(ACCESS2000)
庫中有三個表,第一個ly就是用來放留言的啦,有12個字段。。。。(現在看來,用不了這么多的,我也不想改啦)
1姓名2性別3地址4內容(備注)5時間(日期時間)6日期(日期時間)7心情8ID(自動編號)9URL10URLNAME11EMAIL12臉,
第二個表 color 用于存放配色方案有3個字段1名稱2ID(自動編號)3方案
第三一個表PAS用來放管理員密碼啦,但這個程序的安全性沒有充分考慮的,朋友們要自已修改啦。
首先做一個表單,用于錄入我們的留言,存為文件名:index1.htm 代碼如下,你把他全復制了在FONTPAGE中粘出來就得啦。
****************************
<html>
<head>
<title>卓越留言本-填寫留言</title></head>
<body bgcolor="#DEEEFE">
<div><center>
<table border="0" width="95%" height="270" bgcolor="#FCFFE6" style="border: 1 solid #000080">
<tr> <td width="100%" height="16"> <p align="center"><font size="5" color="#0000FF"><b>阿余的超級留言本</b></font></td>
</tr><tr><td width="100%" height="187">
<form method="POST" action="savely.asp">
<p align="left"> 尊姓大名:<input type="text" name="xm" size="33">**
性別:<select size="1" name="xb">
<option selected>男</option>
<option>女</option>
</select></p>
<p align="left"> 來自:<input type="text" name="lz" size="38">
EMAIL:<input type="text" name="ema" size="37"></p>
<p align="left"> 網站名:<input type="text" name="urname" size="35">
網址:<input type="text" name="urla" size="37"></p>
<p align="left"> 現在的心情:<input type="radio" value="大笑" checked name="xq">大笑
<input type="radio" name="xq" value="愉快">愉快 <input type="radio" name="xq" value="平靜">平靜
<input type="radio" name="xq" value="憂郁">憂郁 <input type="radio" name="xq" value="痛苦">痛苦
<input type="radio" name="xq" value="發怒">發怒</p>
<p align="left"> 留言內容:<font size="2">(不能超過200漢字)**</font></p>
<p align="center"><textarea rows="5" name="lr" cols="87"></textarea></p>
<p align="center"><input type="submit" value="寫好啦" name="B1"><input type="reset" value="重新寫" name="B2"></p>
</form> <p align="center"><a href="disp.asp">返回</a></td>
</tr> <tr> <td width="100%" height="27"></td> </tr><tr> <td width="100%" height="16"></td> </tr> </table> </center></div> </body> </html>
*************************
然后再寫一個程序把我們這些內容加入到數據庫中,我就不全寫出來啦,這樣的話,這篇文章會好長的,你們只要到 WWW.ZYDN.NET去下一人來就得了,文件名是savely.asp
注意其中這幾個語句:
abcc=len(lr)
sclr=""
absn=1
do while absn<abcc
alsa1=mid(lr,absn,1)
if asc(alsa1)=13 then alsa1="<br>"
if alsa1="<" then alsa1="<"
if alsa1=">" then alsa1=">"
sclr=sclr+alsa1
absn=absn+1
loop
lr=sclr
這是用來判斷用戶輸入的內容中是否有超文本代碼,是否有回車,并把超文件的“<”“>”轉為“<”“>”,把回車(換行)轉為“<br>”,稍加發揮,這段程序可以做不少事,如哪位朋友有更好的辦法不妨告訴我一聲。存完內容后用response.redirect "DISP.ASP"把庫中的內容顯示出來。
好啦,然后把數據庫顯出來不就成了一個留言本?開始的時候我也這樣想,但我發現這要讀數據庫,ASP文件要經ASP.DLL,速度很慢這哪還能叫超級留言本!!阿余苦苦思索了整整。。。。不知多久。。(想著想著睡著啦),一覺醒來,茅塞頓開,把數據庫中的東東讀出來,再用FILESYSTEMOBJECT寫為HTML不就行了?讀HTML可比讀數據庫快多啦,啊。說干就干,于是DISP.ASP 這個文件出來啦
********************************以下是disp.asp的全部內容
<!--#include file="color.inc"-->
<%
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("zyly.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
SQL="SELECT * FROM ly order by id"
dim ra
Set ra=Server.CreateObject("ADODB.RecordSet")
ra.Open sql,conn,1,1 '*****以上用于連接數據庫,讀出庫中的內容,典型的ADO連接ACCESS的數據庫
if ra.eof or ra.bof then
%>尚無內容<%
else
set xm=ra("姓名")
set xb=ra("性別")
set lz=ra("地址")
set lr=ra("內容")
set dat=ra("日期")
set tim=ra("時間")
set emai=ra("email")
set UR=ra("URL")
set urlname=ra("urlname")
set lian=ra("臉")
set biao=ra("心情")
i=1
ra.movelast
lylr=""
do while not ra.bof and i<=100 '由于有這一句I<=100所以,本留言最多顯示100條留言,要顯示更多的話,把這個數改大一些就行啦
lylr=lylr+" <table style='font-size: 9pt; color: "+co5+"; border: 1 solid "+co3+"' border='0' width='91%' bgcolor='"+co2+"'><tr><td width='19%' rowspan='3' > <img border='0' src='"+lian+"' alt='"+biao+"' width='33' ></td><td width='41%'>姓名: "+xm+"</td> <td width='40%' >時間:"+cstr(year(dat))+"年"+cstr(month(dat))+"月"+cstr(day(dat))+"日 "+tim+"</td></tr><tr>" %>
<% if trim(emai)<>"" then
lylr=lylr+"<td width='41%'>EMAIL: <a href='mailto:"+emai+"'>"+emai+"</a></td>"
end if
if trim(urlname)<>"" or trim(ur)<>"" then
lylr=lylr+"<td width='40%' >主頁:<a href='"+ur+"'>"+urlname+"</a></td>"
end if
lylr=lylr+"</tr><tr>"
if trim(lz)<>"" then
lylr=lylr+"<td width='81%' colspan='2'>來自: "+lz+"</td>"
end if
lylr=lylr+"</tr><tr><td width='100%' colspan='3'>"+lr+"</td></tr></table><table style='font-size: 5pt'><tr><td ></td></tr></table>"
i=i+1
ra.moveprevious
loop ' 以上把數據庫中的內容全讀到了lylr變量中,一篇留言就做好啦,這時如用<%=LYLR%>顯示出來就是一篇不錯的留言了,注意其中不少用顏色地方都換成變量了,這是為了好改頁面的顏色,
ra.close
end if %>
<%lylr1="<html><head><meta http-equiv='Content-Language' content='zh-cn'><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>卓越電腦留言本</title></head><body bgcolor='"+co1+"'><div align='center'> <center><table width='91%' cellspacing cellpadding ><tr><td width='100%'><p align='center'><b><font color='"+co4+"'>"+bt+"</font></b></td></tr></table><table width='91%' cellspacing cellpadding style='font-size: 9pt' bgcolor='#FFFFD9'> <tr><td colspan='3'></td></tr><tr><td align='center'><a href='index1.htm'>寫點什么</a></td><td align='center'><a href='gl.htm'>管理版面</a></td> <td align='center'><a href='../'>退出</a></td> </tr></table>"%>
<!--#include file="path.inc"-->
<%
lylr=lylr1+"<br>"+lylr+"<hr width='94%' color='"+co4+"' size='1'><table border='0' width='91%' style='font-size: 9pt; border-style: solid; border-width: 1' bgcolor='#ADBF9F'><tr><td width='33%'>此程序由重慶市<a href=http://www.zydn.net>卓越電腦公司</a>開發</td> <td width='33%' >EMAIL: <a href='mailto:[email protected]'>[email protected]</a></td><td width='34%'>電話:023-48650340 023-48658712</td></tr><tr><td width='33%'>地址:重慶市綦江縣中山路卓越電腦公司</td> <td> 卓越留言本2.0版 </td><td width='34%' >郵編:401420</td></tr></table> </center></div></body></html>"
'好啦,到這里我們的留言內容全部做好啦。
set fs= createobject("scripting.filesystemobject")
set ts=fs.createtextfile(""&patha&"index.htm",true) 'PATHA是放在PATH.INC中的一個變量,當前路徑
ts.writeline(lylr)'建立一個文件,并把留言內容(LYLR)寫入其中,
ts.close
response.redirect "index.htm"'轉向我們建立的 index.htm留言顯示出來啦
%>
***************** 以上是disp.asp的全部內容
開始的<!--#include file="color.inc"-->用于調入留言本的配色方案,而后的<!--#include file="path.inc"-->用于調入當前路徑。
下面對color.inc 和 path.inc作個說明
color.inc 由以后要介紹的一個配色方案程序生成,
而path.inc的內容如下:
<%
patha=server.MapPath("path.asp")
patha=left(patha,len(patha)-8) %>用于取得程序存放的路徑,由于要在別的地方用所以就寫成一個單獨的文件了。這個方法好象很笨,望高手能教教阿余。
好啦,今天就寫到這里,明天繼續,您可到www.zydn.net下載全部源程序。
如果誰有意見的話請給我來信[email protected] 或訪問我的網站www.zydn.net