·您的位置: 首页 » 资源教程 » 编程开发 » ASP » ASP教你制作简单的留言簿

ASP教你制作简单的留言簿

类别: ASP教程  评论数:0 总得分:0
前言:
  前几天看了《请不要做浮躁的人》这篇文章.真是收益非浅..每看这篇文章就会脸红一次.想想学习ASP这么长时间了..居然还是属于菜鸟级的人物.说来惭愧那.可能跟自己的努力程度和实践程度有关.文中有句话说的好: 菜鸟学习脚本的方法就是多练习. 的确是这样,世界上本来就没有跨不过去的坎..关键在于你要去做.光说不练是假把式....我想只要你去做了,你就不可能永远菜下去... 那好....废话不说了,切入正题.

  学习ASP有段时间了..对一些基础的东西也有了一些了解.比如常用的内置对象的用法.那么现在你需要开始动手规划你的第一个留言本.人都有第一次吗?是不是....你要把那些知识用到实战中去以检验你的ASP学习成果..那,留言本其实是最好的练手机会.因为留言本从结构上来说不是很复杂...而且会用到很到ASP中比较基础的东西.你独立完成的这个留言本是你的第一个作品,好说也有点成就感嘛.而且对你的ASP技术进阶也有很大的帮助.....省略1000字..哎..我这个人就是喜欢罗嗦..就此打住... 我们马上开始...

一. 制作思路
  思路其实是一个很重要的东西.写程序尤其是如此.谁都没有把握去编写一个还没有思考成熟的东西. 先明确一点,这个留言本没有用到任何新技术.[是给菜鸟看的嘛].因为这个教程的目的不在于创新而在于练习.

  大体的思路是这样: 需要一个数据库存放留言的内容等.然后用ASP读出数据库中的内容显示在页面上. 主要讲解了一下在ASP中运用ADO和SQL语句对数据库的一些基本操作.比如最常用的Select语句.对了.就是这样.关于ADO请参阅相关资料...
在这个极简单的留言本中用到的文件清单:
Liuyan.mdb \'留言本数据库文件
Install.asp \'留言本表结构创建文件
Show.asp \'显示留言主文件
Add.htm \'添加新留言表单
Insert.asp \'插入新留言文件
login.asp \'管理员登录文件
del.asp \'删除留言文件

二.建立数据库
1.打开你的Access建立一个文件名为:Liuyan.mdb.添加以下字段:
(1). ID 类型为自动编号(存放留言的ID编号)
(2). Name 类型为文本字段(存放留言人的姓名)
(3). Homepage 类型为文本字段(存放留言人的主页)
(4). Title 类型为文本字段(存放留言的主题)
(5). Neirong 类型为备注字段(存放留言的内容)

  当然你可以自己添加你认为需要的字段,如果你把字段名或表名换成其它名称,则对程序也要作出相应的更改,不然会出错。如果你不想手工建表及添加字段,那你可以在浏览器中运行Install.asp文件,它可以自动建表,你就可以偷懒了:)

2. 在开始编写之前有必要罗列下在这个留言本中用的的SQL语句.也是留言本的原理.
以本数据库为例:

\'检索出数据库中的留言并最新的留言在前
Sql=SELECT * FROM liuyan ORDER BY id DESC
\'这个语句是签写新留言时用到的.
Sql=INSERT INTO liuyan(name,homepage,title,neirong) VALUES
(\'name\',\'homepage\',title\',\'neirong\')

  这两条语句是今天要用到的.还有很多基本语句比如Delete,update等并没有在这个留言本中用到.你可以自己试着完善.

三.编写代码
  1.Install.asp:考虑到手工建表有点麻烦,所以写了这个文件。文件主要用到CREATE TABLE和DROP TABLE语句,不过由于数据库的原因,有些数据库有可能不支持此语句。本文以Access为例,因为ACCESS支持这两条语句,如果还是新手还看不懂那也没关系,以为有机会再研究好了:)。由于不清楚数据库定义了那些关键字,所以在创建表和字段时,都用[]把表名和字段名括起来,即使表名或字段名和数据库的关键字冲突,也不会引起程序出错。不过运行本程序前,必须先在Access中创建一个数据库名称为liuyan.mdb,可以不为其创建表,用此程序来创建。
Install.asp的源代码:
<%
\'此文件在执行后最好删除,因为如果不注意再次执行的话,将会使数据库的所有数据丢失,切记!

Dim SYS_strTableName,SYS_strSQL,SYS_objRS

\'需要创建的表的名字
SYS_strTableName = "liuyan"

Set objConn = Server.CreateObject("ADODB.Connection")

\'OLEDB方式打开数据库的Connection对象连接字符串
strcon="provider=microsoft.jet.oledb.4.0;data source=" & Server.mappath("liuyan.mdb")
objConn.open strcon\'和数据库已经建立连接可对其操作了.


\'DROP TABLE是一条从数据库中删除表的SQL语句。有些数据库有可能不支持。
SYS_strSQL = "DROP TABLE [" & SYS_strTableName & "]"

\'删除表时,如果有错误出现则跳转执行下语句
\'因为如果DROP TABLE一个数据库中并不存在的表时,就会导致程序出错,
\'所以加了这个语句On Error Resume Next

On Error Resume Next

objConn.Execute (SYS_strSQL)

\'因为On Error Resume Next比较耗资源,执行这条语句后,下面再出现错误将不会被跳转了也就是On Error Resume Next将不对此后的语句产生作用了,如果不加这句话,就对此后的都起屏蔽错误的作用。
On Error Goto 0

\'创建表格的主要是用CREATE TABLE语句
\'CREATE TABLE tablename (fieldname1 fieldytype1,fieldname2 fieldtype2......)
SYS_strSQL = "CREATE TABLE [" & SYS_strTableName & "] ("

\'此为创建自动编号类型的字段id
SYS_strSQL = SYS_strSQL & "[id] integer IDENTITY (1, 1) PRIMARY KEY NOT NULL ,"

\'创建文本类型的字段name,并限定该字段的长度为50(char(50)实现该功能),不能为空(NOT NULL)
SYS_strSQL = SYS_strSQL & "[name] char (50) NOT NULL,"

\'创建文本类型的字段homepage,并限定该字段的长度为50(char(50)实现该功能),允许为空(NULL)
SYS_strSQL = SYS_strSQL & "[homepage] char (50) NULL ,"
SYS_strSQL = SYS_strSQL & "[title] char(50) NOT NULL,"

\'创建备注类型的字段neirong
SYS_strSQL = SYS_strSQL & "[neirong] memo)"

Set SYS_objRS = objConn.Execute(SYS_strSQL)
\'显示创建成功信息。
Response.Write ("<br><font color=""#ff0000"">" & SYS_strTableName & "</font> 表创建成功!<br>")
%>
 2.show.asp文件基本思路: 把每一条留言以表格的形式存放标准Html中.然后通过Asp中的Do while方法循环打印出表格.利用ADO对象依次读出数据表的留言内容显示在页面上.暂时没有分页功能.....因为这是个最简单的留言本吗?^_^..

  先定义数据库连接对象..采用标准的Oledb连接方式.主要用到Connection、RecordSet这两个对象.就是我们读出的记录集变量.
show.asp的源代码:
<html>
<head>
<title>最简留言本</title>
<LINK href="style.css" rel=stylesheet type=text/css>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body leftmargin="1" topmargin="0">
<%
Set conn = Server.CreateObject("ADODB.Connection")
strcon="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("liuyan.mdb")

conn.open strcon \'和数据库已经建立连接可对其操作了.

Set rs = Server.CreateObject ("ADODB.Recordset") \'建立Recordset记录集对象

sql = "SELECT * FROM Liuyan ORDER BY id DESC" \'上面提到的Sql语句.作用是取出数据.
rs.Open sql,conn,1 \'用RS对象的Open方法打开数据库并把数据存放进记录集中....
If rs.Bof And rs.Eof Then \'表中还没有任何记录
\'在屏幕上居中显示"还没任何留言!",并给出"添加新留言"的链接
Response.Write("<center>还没有任何留言!<br>请<a href=""Add.htm"">添加新留言</a></center>")
\'强制终止程序的执行,在调试ASP程序时经常要用到这句
Response.End
End If
Do While Not rs.eof \'循环读出所有记录
\'Server.HtmlEncode(字符串)主要是原样输出HTML和JavaScript代码
%>
<!-- html表格部分-->
<table align=center width=65% cellspacing=1 cellpadding=4 bgcolor="#999999">
<tr>
<td width=72 height="" align=center valign="middle" bgcolor="#003366"><font
color="#FFFFFF">留言本:</font></td></tr>
<tr>
<td width="72" height="0" valign="middle" bgcolor="#E6E6E6"><font
color="#000000">姓名:</font></td><td height="20" bgcolor="#E6E6E6">
<%=server.htmlencode(rs("name"))%> </td>
</tr>
<tr>
<td width="72" height="0" valign="middle" bgcolor="#FFFFFF"><font
color="#000000">hompage:</font></td>
<td height="20" bgcolor="#FFFFFF"><%= server.htmlencode(rs("homepage"))%> </td></tr>
<tr>
<td width="72" height="20" bgcolor="#E6E6E6"><font color="#000000">主
题:</font></td>
<td height="20" bgcolor="#E6E6E6"><%=server.htmlencode(rs("Title"))%></td></tr>
<tr style="word-break:break-all">
<td width="72" height="20" bgcolor="#E6E6E6"><font color="#000000">留
言:</font></td>
<td height="20" bgcolor="#E6E6E6"><%= server.htmlencode(rs("neirong"))%> </td></tr></table><br>
<!--\' Html部分结束-->
<%
rs.movenext
Loop
\'关闭对象并释放资源
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>
</body>
</html>
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:

纯粹空间 softpure.com
Copyright © 2006-2012 暖阳制作 版权所有
承接程序设计 网页设计
QQ: 15242663 (隐身在线 拒绝闲聊)  Email: faisun@sina.com

 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛  

百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1