ASP进阶教程Ⅷ:数据库版本的留言簿

 
在前面我们介绍了文件版本的留言簿,现在我们不妨来设想一下:如果留言文件里面的留言很多,而你又急于想寻找其中的某条留言时,这时打开txt留言文件,对着一段段的留言记录,你敢担保你不会当场晕倒吗?而且文件留言簿最令人讨厌还远不只是这个原因,更气人的是:譬如你已经找到了你要找的留言,而且是非要将其删除不可(当然是因为那段留言竟毫不留情地往你脸上抹黑的缘由啦),那么此时其余想对你大发赞赏之言的朋友,就会因为你正在做留言删除的操作而不能留言了。看,这有多可惜!不过,你也无须叹气,虽然留言文件不能供多人共用,但是改成数据库来管理留言记录,当你在做删除留言的期间,访问者的留言还是可以加进来的。既然数据库留言簿能对你的系统如此照顾入微,我们现在就事不宜迟,立即来揭开她的庐山真面目。

  至于如何建立自已的数据库版本的留言簿,我们还是通过分步骤的方法来说明吧。要编写一个数据库版本的留言簿,我们大致可以从以下三个步骤来完成。

步骤一:使用Access先建立用来存放留言的数据表。(当然,如果你想使你的数据库能很好地工作在高需求、高质量的Web应用程序的客户-服务器数据库,而且无论是在性能还是在可靠性上都能经受得起严格的考验,那么你最好是用服务器等级的数据库,如:SQL server、Oracle等。对于非服务器等级的数据库,我推荐使用Access中文版来建立。凡是用Access来建立的数据表,都是以.mdb为后缀名,如:book0.mdb。)

  Access的界面非常友好,操作也非常简便,相信聪明的读者们,即使以往从未用过Access的,只要动手试试,也定能很快对其驽驾自如,所以我在这里也就不再赘述(当然也不排除有那么几分懒惰的成份)。

步骤二:设计一个留言表单的网页也同样是不可或缺的。(如:guestbook0.htm)。  
步骤三:又到编写处理留言的ASP程序了。(我们可以将下述代码COPY下来,然后另存为manage0a.asp文件。)
< !--#include file="adovbs.inc" -->
'调用adovbs.inc文件,所谓inc 文件顾名思义是include file的意思,adovbs.inc是IIS/PWS所提供的文件,存放着ADO相关常数的定义,使用inc文件可以使我们的程序,增加可读性,更易于开发和维护。
< % Function SqlStr( data )
SqlStr = "'" & Replace( data, "'", "''" ) & "'"
End Function
'这里用了SqlStr函数,其作用是将数据中的一个单引号改成两个单引号,并且在前后加上单引号。之所以要用该函数是由于上网者输入的数据必须以用单引号括起来的形式'输入的数据'与Insert Into命令组合在一起,但是如果用户输入的数据含有单引号,则'输入的数据'将会产生错误,因此输入的数据必须经过SqlStr的切换(将单引号切换成两个单引号)才是正确的。
Name = Request("Name")
Tel=Request("Tel")
Email = Request("Email")
Subject = Request("Subject")
Memo = Request("Memo")
'从留言表单取得数据
If Name = "" Or Tel="" Or Email = "" Or Subject = "" Or Memo = ""  Then Response.Write "输入框不能为空白!"
Response.End
End If
'检查表单的各输入框是否有信息输入,若留有空输入框没填则显示说明信息:"输入框不能为空白!" 并停止执行下面的程序。
Set conn = Server.CreateObject("ADODB.Connection")
'用Server.CreateObject取得对象ADODB.Connection。因为在ASP中,如果要访问数据必须首先创建与数据库的链接,因此建立连接是存取Web数据库不可缺少的步骤,执行以上语句之后,conn便是一个Connection对象。
DBPath = Server.MapPath("book0.mdb")
'通过调用服务器对象的MapPath方法来获取book0.mdb的完整路径。
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
'因为我们想打开的是Access(.mdb)数据库,所以我们要透过Access的ODBC驱动程序{Microsoft Access Driver (*.mdb)}来存取数据库,dbp参数则是用来指定想打开的数据库文件,因为它必须是完整路径名称,所以我们上一语句用了Server.MapPath 函数 。
Name = Left( Name, 40 )
Tel = Left(Tel,10)
Email = Left( Email, 80 )
Subject = Left( Subject, 127 )
'截短输入到各字段里数据的长度,以避免因输入到某一字段中的数据超长而引发的错误,当然假如我们将数据库book0.mdb中的各字段的数据类型都有设为“备注”,我们则再无需担心上网者所输入的数据有多长。
sql = "Insert Into GuestBook (姓名, 电话, Email, 主题, 留言) Values( "
sql = sql & SqlStr(Name) & ", "
sql = sql & SqlStr(Tel) & ", "
sql = sql & SqlStr(Email) & ", "
sql = sql & SqlStr(Subject) & ", "
sql = sql & SqlStr(Memo) & ")"
'在"guestbook"数据表中增加一个数据记录,然后把其中的各字段 (姓名, 电话, Email, 主题, 留言)分别设置成从留言表单上取下的对应的数据。
conn.Execute sql
'执行sql指令。
%> 

时间: 2024-11-02 14:40:58

ASP进阶教程Ⅷ:数据库版本的留言簿的相关文章

ASP进阶教程:数据库版本的留言簿

教程|数据|数据库    在前面我们介绍了文件版本的留言簿,现在我们不妨来设想一下:如果留言文件里面的留言很多,而你又急于想寻找其中的某条留言时,这时打开txt留言文件,对着一段段的留言记录,你敢担保你不会当场晕倒吗?而且文件留言簿最令人讨厌还远不只是这个原因,更气人的是:譬如你已经找到了你要找的留言,而且是非要将其删除不可(当然是因为那段留言竟毫不留情地往你脸上抹黑的缘由啦),那么此时其余想对你大发赞赏之言的朋友,就会因为你正在做留言删除的操作而不能留言了.看,这有多可惜!不过,你也无须叹气,

ASP进阶教程Ⅸ:留言查询功能(一)

 当有一天,你的心情突然变得很坏,但是巧合的是,在你的留言簿中你的网友留了一句很让你振奋的话,于是你很快就重拾了快乐的心情.但是在不久后你又一次心情变坏,但是这次却没有上次那么幸运,因为没有人给予你鼓励,于是你自然就想再看一看上次那句令你很受振奋的话.这时你就会想:假如我的留言簿有留言查询功能就好了! 为了能达成你的心愿,于是我决定在本章教程为你解说具有留言查询功能的留言簿程序.在讲解之前,让我们还是先来学习将在源程序中用到的COMMAND对象. 首先让我们先来了解一下Command对象所提供的

ASP进阶教程Ⅲ:给留言簿润下色

为了能使我们做出来的留言簿更美观,让我们来给上一章的简单留言簿润下色,再令其留言在另外的一个单独的页面显示. 那么怎样给该留言簿润色呢?留言表单界面的背景总不能没吧?而且为了让留言表单的内容显示得更加规整,我们是否有必要用框架将留言表单的内容框起来呢?想好了,现在就让我们立即动手给我们的留言簿粉饰刷新. 步骤一:先给留言表单加上背景 这个问题我在这里就不多费口舌了.至于如何给表单的内容加点底色然后用虚框框起来,我们可以将上一章所给程序中的"定义留言的显示格式"部分进行更改.我在这里只是

ASP进阶教程:给留言簿润下色

为了能使我们做出来的留言簿更美观,让我们来给上一章的简单留言簿润下色,再令其留言在另外的一个单独的页面显示. 那么怎样给该留言簿润色呢?留言表单界面的背景总不能没吧?而且为了让留言表单的内容显示得更加规整,我们是否有必要用框架将留言表单的内容框起来呢?想好了,现在就让我们立即动手给我们的留言簿粉饰刷新. 步骤一:先给留言表单加上背景 这个问题我在这里就不多费口舌了.至于如何给表单的内容加点底色然后用虚框框起来,我们可以将上一章所给程序中的"定义留言的显示格式"部分进行更改.我在这里只是

ASP进阶教程Ⅹ:留言簿自动发E-Mail

教程 ASP本身没有发送邮件的能力,但是如果你希望用ASP来发送E-MAIL(例如:你有一个消息,只想让那些在你的留言薄上留了言的上网者们知道,你希望上网者在你的留言薄上填写完成后,你的留言簿便自动将该消息E-MAIL给留言的上网者),那么你需要安装一个ASP组件.并借助这些组件来帮你实现邮件的自动发送.回复等工作.          如果你的ASP及WEB数据库的运行平台是IIS4(Internet Information Server 4.0),你可以使用CDONTS.DLL.如果你已经缺省

ASP进阶教程Ⅱ:一个简单的留言簿

  从本章开始我们将由一个简单的,利用文件储存访问留言的留言簿程序进入我们的教程.编写这样一个留言簿,我们大致可以从以下三个步骤来完成. 步骤一:先设计一个留言表单的网页(如:guestbook1.asp,这不用我在这儿说教了吧?).见下图:  步骤二:在设计好留言表单后,我们开始进行编写处理留言的ASP程序. 我们要编写处理留言的ASP程序,最重要的问题是如何实现存取留言.而在ASP程序中,要存取文件,我们必须建立FileSystemObject对象(该对象主要用于读取Unicode或ASCI

ASP进阶教程Ⅵ:留言簿在线删除留言

还记得我们在第三章中作删除留言的事么?为了删掉那条往你脸上抹黑的留言,我们当时唯一能用上的方法竟然只有直接在留言数据库上进行查找和删除.(而即使是学习了第七章之后,我们也仅仅只能繁锁地先通过"留言管理"的密码验证,然后下载整个留言数据库,删除更改以后再上传.)天啊!你总没法保证:当你看到那些你不喜欢的留言时,正是当你正在使用着那台放了你留言簿的服务器的时候吧?假如有一天你出差在外,或是你正在使用的计算机根本就没有安装什么上传软件......是不是?无计可施了吧?那么难道我们就只能眼光光

ASP进阶教程Ⅶ:留言簿设置密码验证

为了兑现我对大家的承诺,我们现在立即就将"借助数据库和ASP程序"编写出来的,可以同时适用于IIS和PWS的安全网页看个仔细. 先睹为快,还是让我们首先就来看看该ASP程序(password.asp).< %Function CheckPassword( Name, Password )Dim conn, param, rsSet conn = Server.CreateObject("ADODB.Connection")param = "drive

ASP进阶教程:留言查询功能(一)

教程   当有一天,你的心情突然变得很坏,但是巧合的是,在你的留言簿中你的网友留了一句很让你振奋的话,于是你很快就重拾了快乐的心情.但是在不久后你又一次心情变坏,但是这次却没有上次那么幸运,因为没有人给予你鼓励,于是你自然就想再看一看上次那句令你很受振奋的话.这时你就会想:假如我的留言簿有留言查询功能就好了!          为了能达成你的心愿,于是我决定在本章教程为你解说具有留言查询功能的留言簿程序.在讲解之前,让我们还是先来学习将在源程序中用到的COMMAND对象.          首先