
 
 | 
| 技术资料  > ASP技术 > ASP应用 : 超级留言本制作实例<1> |  
超级留言本制作实例<1> March 25,2004 |  
做了几年的网页,到处留言千千万,用过各种留言本万万千。可惜令我喜欢的留言本真少(55555),慢慢的速度让我无法忍受,丑陋的界面让我心烦,图标更是让人作呕,所以我下决心写一个自己的超级留言本,阿余半夜起来,挑灯奋战,忙了一整天,终于。咱的“超级留言本1.0”出现了,它速度极快。因为根本就是HTML的,并没有一个冗余的代码,图标全是根据俺自己 and 俺的“那个”绘制的,还可以随时修改配色方案,呵呵,不敢独享,赶忙写给大家,不对的地方,不要忘了到 www.zydn.net 去骂呀,阿余在那里等候你的批判。 
 
  好了,下里具体讲讲我的留言本怎么做的吧。(第一次写教程,还不懂怎么开头) 
  为了方便管理,这是一个基于数据库的留言本程序,先看看我的库结构,(ACCESS 2000) 
  库中有三个表,第一个 ly  就是用来放留言的啦,有12个字段。。。。(现在看来,用不了这么多的,我也不想改啦) 
1姓名 2性别  3地址   4内容(备注)   5时间(日期时间)    6日期(日期时间)    7心情    8ID(自动编号)  9URL    10 URLNAME   11 EMAIL   12 脸, 
  第二个表 color 用于存放配色方案 有3个字段  1 名称  2 ID(自动编号)   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  
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved