日期:2009-06-18  浏览次数:20753 次

修正ASP GuestBook留言本的错误
-----------------------------------------------------
数据库的结构

gstbook.mdb
表config
结构
id       autonumber(自动增量)
owner    char       50      留言本名称
pwd      char       10      留言本维护密码
ps       char       255     留言本的欢迎信息
homepage char       255     主页连接
注:id=1的记录用于保存站长的密码,
    故ID=1的留言本不可用。

表book
id           autonumber
guestbookID  long
name         char   50      留言者的大名
sex          char   50      留言者的性别
fromwhere    char   50      留言者来自何处
homepage     char   255     留言者的主页
email        char   255     留言者的电邮地址
content      memo(备注)     留言者的留言内容
reply        memo           回复内容
dateandtime  char   50      留言的日期
飞鸟按:
      应该再加上回复的时间,俺太懒就不改了。

关于数据检查
数据检查就是检查对方输入的内容,如果对方留言,就必须至少
输入名字和留言。本程序是放在服务器端检查,飞鸟感觉用客户
端去检查,然后弹出MSGBOX告诉对方输错了,比较烦人,而且还
不能用msgbox显示中文(在英文系统下不能显示)。

程序处理输入内容的流程
   call getInput() '获得输入的内容
   call chkInput() '检查输入的内容
   if foundError then
   '如果输入的内容有错误(比如少输入了内容,或长度超过了)
      call showErrors()
      '提示出错信息,并重新显示输入画面,对方已输入的内容
      '也显示,方便对方修改
   else
      saveData()  '保存输入的内容
      if foundError then '保存数据出错(通常是数据库操作失败,
                         '飞鸟提供下载的程序实际上无法处理这
                         '种错误,鞠躬致歉,请阅读下面的内容)
     call showErrors()
      else
         '显示正常的画面或redirect到别处去
      end if
   end if

处理错误
在文件的头上加上下面的语句
on error resume next
并且每个函数和过程内都应该加上这句
在可能出现错误的地方加上
if err.number<>0 then
  '应保存错误信息,或进行适当的处理
  err.clear
else
  '不出错的情况
end if
举例:savedata.ASP   
<%
   on error resume next
   dim sql
   dim rs

   dim sBookID
   dim sName
   dim sE