循序渐进学做留言簿--一个数据库版本的简单留言簿-ASP教程,ASP应用
来源:作者: 发布时间:2007-12-25 13:34:38


| 在前两章我们介绍了文档版本的留言簿,现在我们不妨来设想一下:假如留言文档里面的留言很多,而您又急于想寻找其中的某条留言时,这时打开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指令。 %> |
|
还没有关于此文章的相关评论!