学用asp+acce制作留言簿_留言簿的制作

其他范文 时间:2020-02-28 00:03:33 收藏本文下载本文
【www.daodoc.com - 其他范文】

学用asp+acce制作留言簿由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“留言簿的制作”。

学用asp+acce制作留言簿

前言:这是一篇asp+acce的留言簿教程,运行测试环境:win2000+IE5.0。此篇教程适合对asp有一定了解的人,如果是初学者,建议先看点asp方面的书籍,或者本站XML+ASP的一些文章和论坛的一些贴子,至少能对变量、语法、函数、对象等有一个大概的了解。

一、总体思路

留言簿虽小,但对asp知识的要求还是挺全面的。首先对留言簿要完成的功能做一个大体的介绍。在设计一个项目时,最好能够构思出大体轮廓并写出来,这样就不会越做越乱,到最后自己都不知道自己要做什么!

1、单用户版:这篇教程中所要完成的留言簿只有一个管理员,所有人不需要注册就可留言。

2、留言者必须填写用户名、QQ号、邮箱、主页、留言内容、留言时间、可以使用悄悄话功能、可以获取用户IP地址,其中留言内容可以使用简单的UBB功能。

3、可以实现一定的管理功能:删除留言、编辑留言、自定义页头和页低、定义留言数、写公告、对留言簿进行一些最简单的配置等。

4、主要用asp+acce2000完成5、如果必要大家可以加搜索功能。

6、在程序设计中,尽量使用模块化,减少大量无用代码。

二、数据库构造

1、数据库名: data.mdb

说明:在设计留言簿的过程中,可以保持此名,设计完毕后可以改为data.asp,以保证数据库的安全性。

2、数据库表:总共有三个表:

(1)admin 主要记录管理员的用户名和密码以及一些基础信息。

(2)content 用来记录用户留言内容

(3)gbfined 用来记录留言簿的一些基本配置,如题头图片地址、图片长度高度、留言簿每页的留言条数,公告内容等等。

3、数据库表的具体设计:

(1)admin表

字段名

类型

长度

说明

admin_name

文本

默认

存储管理员的名字 admin_paword

文本

默认

存储管理员的密码 admin_qq

文本

默认

存储管理员的oicq号 admin_email

文本

存储管理员的邮箱

admin_homepage

文本

150

存储管理员的主页地址 admin_webname

文本

150

存储管理员的主页名称

说明:A、“常归”项中的“允许空字符串”最好填“是” B、表格设计完后最好能够填入数据: admin_name:admin admin_paword: admin admin_qq: 57146

admin_email: daifo@5dmeng.com

admin_homepage: http://www.daodoc.com admin_webname: 织梦帝国

(2)content表

字段名

类型

长度

说明

user_id

自动编号

默认

用户留言的ID号 user_name

文本

默认

存储留言者的名字 user_qq

文本

默认

存储留言者的oicq号 user_ip

文本

默认

存储留言者的IP地址 user_email

文本

默认

存储留言者的邮箱 user_addre

文本

默认

存储留言者的来源地址 user_homepage

文本

150

存储留言者的主页地址 user_webname

文本

150

存储留言者的主页地址 user_image

文本

默认

存储留言者的头像地址 user_silent

是/否

是否只有管理员才能看贴 user_time

日期/时间

常规日期

存储留言者的留言时间 user_content

备注

默认

存储留言者的留言内容 reply_content

备注

默认

存储管理员的回复时间 reply_time

日期/时间

常规日期

存储管理员的回复时间

说明:“常归”项中的“允许空字符串”最好填“是”

(3)gbfined表

字段名

类型

长度

说明

gb_name

文本

默认

留言簿的名称 gb_pagecount

数字

整型

留言簿每页留言条数

gb_addre

文本

150

留言簿地址,或者主页地址 gb_image

文本

默认

留言簿顶部图片地址及名称 gb_width

数字

整型

图片的宽度 gb_height

数字

整型

图片的高度 gb_editioner

文本

250

页面低部内容 gb_bulletin

备注

默认

管理员公告内容 gb_time

日期/时间

常规日期

管理员公告时间

说明:A、“常归”项中的“允许空字符串”最好填“是”

B、表格设计完之后最好能填上内容,特别是gb_pagecount和gb_name gb_name: 织梦帝国

gb_pagecount: 10 gb_addre :#(如果你有个人主页,可以填上主页地址)

gb_image: images/title.gif

gb_width: 400

gb_height: 100

gb_editioner: Designer:Daifo

E-mail:Daifo@sina.com

数据库的构建,补充几点:

1、字段大小,这个与你存储对像大小紧密联系,应该保证可大不可小的原则。

2、字段类型,这并不因为你存储对像是数字就一定要设成数字,可以设成文本类型,这一点我在做数据库完全体现了。

三、文件构成留言簿中的留言、删除留言、编辑留言、管理功能等等,其实都可以在一个页面中完成,但设计代码的时候,不可以全放在一个页面中。如何来组织自己的代码放在不同的页面中,然后再调用,这是一个痛苦的过程,特别对一个大网站的制作。我们从文件构成中来看看留言簿的代码大体分配情况:

index.asp 这是留言簿的首页也是主页面,在这个页面里调用其他文件和函数,在这个文件里利用很少的代码来充分体现asp的模块化思维

inc.asp

这个文件其实是真正的核心文件,我做完留言簿的时候,发现有一千多行,当然里面还是可以精简的,主要是大量的asp模块内容在里面,然后让index.asp文件来调用。

conn.asp 这是调用数据库和打开数据库的文件,内容很少,但把他分流出来单独做成一个文件,主要是方便数据库文件名和打开方式的修改

const.asp 最初学做asp程序的时候,很不喜欢定义变量,时间长了之后,再也不看不下去,不得不把程序送入垃圾桶。通过这个文件,我想告诉大家,一定要定义变量,一定要给程序写注释。

faces.htm 这是头像文件

styls.c c文件

ubbhelp.htm 帮助用户留言的ubb代码帮助文件

四、页面代码设计

关于与数据表的连接说明:Recordset对象存取数据表的连接比较烦琐,本教程用得很少,这次使用的基本上是sql语句,如果有其他方法会在代码中加以说明。

(一)conn.asp文件

'将 VBScript 设为该页的主脚本语言 <%@LANGUAGE=“VBSCRIPT”%> <% '此语句要求设计者要定义变量,这样的话可以减轻服务器的解析负担,进而提高运行速度速度

option explicit '定义数据库变量

dim conn,connstring,dbpath '设置数据库对象

set conn=server.createobject(“adodb.connection”)'数据库路径

dbpath=server.mappath(“data/data.mdb”)' '连接数据库 connstring=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & dbpath '如果你用的是较老版本Acce驱动,请用下面连接方法

'connstr=“driver={Microsoft Acce Driver(*.mdb)};dbq=” & dbpath conn.open connstring %>

(二)const.asp文件

<% '定义数字变量和数据库变量,有此不常用变量将在程序中定义 dim i dim strsql,rs '定义表中将要调出的数据的变量,在这里我用了和数据库中同名字段 dim admin_name,admin_paword,admin_qq,admin_email dim admin_homepage,admin_webname dim user_id,user_name,user_image,user_addre,user_ip,user_qq,user_homepage,user_webname dim user_email,user_silent,user_time,user_content,reply_y_n,reply_content,reply_time dim gb_name,gb_addre,gb_pagecount,gb_image,gb_width,gb_height dim gb_editioner,gb_time,gb_bulletin dim action,page,id dim islogin,username,paword '打开数据表,取出留言簿配置的相关参数 strsql = “select * from gbfined” set rs = conn.Execute(strsql)

gb_name = rs(“gb_name”)gb_addre = rs(“gb_addre”)gb_pagecount= rs(“gb_pagecount”)gb_image= rs(“gb_image”)gb_width= rs(“gb_width”)gb_height= rs(“gb_height”)gb_editioner= rs(“gb_editioner”)gb_bulletin= rs(“gb_bulletin”)gb_time= rs(“gb_time”)'关闭数据表 rs.close set rs=nothing

'如果管理员登录,取出管理员的库中信息,如果未登录将信息置空,主要是方便管理员留言

if seion(“adminpre”)“” then

strsql = “select * from admin”

set rs = conn.Execute(strsql)

admin_name=rs(“admin_name”)

admin_paword=rs(“admin_paword”)

admin_qq=rs(“admin_qq”)

admin_email=rs(“admin_email”)

admin_homepage=rs(“admin_homepage”)

admin_webname=rs(“admin_webname”)

rs.close

set rs=nothing

else

admin_name=“”

admin_paword=“”

admin_qq=“”

admin_email=“”

admin_homepage=“”

admin_webname=“”

end if %>

(三)index.asp文件

今天主要讲一下此文件的大体结构并通过一个小例子来演示一下。

1、文件结构

|--调用相关文件

|--调用写库的相关函数

|--调用页面顶部显示函数

|--调用取库的函数

|调用页面低部显示函数

(1)在首页中用语句来调用函数库文件,而在inc.asp中用语句调用定义变量文件,在const.asp文件中用语句调用连接数据库文件,这样开成了一个嵌套调用,对保护数据库文件有很大的帮助,同时这样确定好了之后可以避免重复调用。注意上面语句不可以放在<%%>中。

(2)在在调用写库函数中用select case语句,如:

select case action

case “chklogin”

call chklogin

case “delete”

call delete

end select(3)调用页面顶部函数直接用call top()就OK了,基中函数调用可以去掉 call,直接写成top()

2、实例

现在我们已经建立好了,数据库、const.asp和conn.asp文件。大家可以在inc.asp文件中加入页顶和页低函数:

<%'======页面头和导航条 sub top(gb_name)%> <%=gb_name%>留言簿 ,asp教程,织梦帝国,织梦帝国留言簿,呆佛,daifo,code,download,articles,guestbook,源代码“> “ width=”<%=gb_width%>“ height=”<%=gb_height%>“>

” title=“返回主页”>主页

查看留言

签写留言

<%if seion(“adminpre”)=“” then%>

留言管理

<%else%>

改资料

改配置

退出

<%end if%>

<%end sub '======页面低

sub bottom(gb_editioner)%> <%=gb_editioner%> Copyright © 2003-2005 xintiao.net All Rights Reserved

<%end sub%>

然后在index.asp中加入下面代码: <%call top(gb_name)%> <%call bottom(gb_editioner)%>

把所有文件保存到guestbook文件夹中,然后在浏览器是软件入http://localhost/guestbook/index.asp.数据库文件的扩展名还能改的。为了数据库的安全性,建议你在设计完一个项目后,改动的你数据库文件名为:****.asp。

现摘录一网友对数据库(表)的几段语句,在本教程中并未用到这些语句,但是很有帮助,大家可以和我对数据库的操作比较一下:

'******************************************************************* '打开数据库

sub opendb(connect)set connect=server.CreateObject(“ADODB.connection”)

connect.ConnectionString=“DRIVER={Microsoft Acce Driver(*.mdb)};DBQ=” & server.MapPath(databasename)connect.Open strconn end sub

'******************************************************************* '关闭数据库

sub closedb(connect)connect.close set connect=nothing end sub '******************************************************************* '打开单个表读

sub opentable(connect,tbname,myrs)set myrs=server.createobject(“ADODB.recordset”)rql=“select * from ” & tbname myrs.open rql,connect,1,1 end sub

'******************************************************************* '关闭临时表 sub closetable(rs)rs.close set rs=nothing end sub

'******************************************************************* '查询数据库

sub searchtable(connect,sql,rs)set rs=server.createobject(“ADODB.recordset”)rs.open sql,connect,1,1 end sub

'******************************************************************* '查询并更改数据库

sub changetable(connect,sql,rs)set rs=server.createobject(“ADODB.recordset”)rs.open sql,connect,1,3 end sub

********************************************************************

好了,我们接着来。

3、下面给出,我的 index.asp的内容,然后按这些来设计留言簿!

<%'调用函数库inc.asp文件 '函数库中的form参数action值 action=request(“action”)select case action '检查登录

case “chklogin”

chklogin

'删除留言,由于,代码不是很多,所以不例为函数,大家可以试着将其做成函数

case “delete”

if seion(“adminpre”)“” then

'如果管理员登录了,那么删除留言

我用的是spl语句,很简单的语句!

strsql=“delete * from content where user_id=”&request.querystring(“id”)

conn.execute(strsql)'关闭数据库

conn.close

set conn=nothing

'删除成功,回留言簿

response.write“”

response.write“删除成功,,正回留言簿.......” %>

<%'结束代码的执行,回首页面

response.end

else

'如果未登录,进入登录界面

response.redirect“index.asp?action=login”

end if

case “w_r_add”

if seion(“adminpre”)“” then

w_r_add '留言簿配置修改入库

else

response.redirect“index.asp?action=login”

end if

case “w_p_add”

if seion(“adminpre”)“” then

w_p_add '版主信息修改入库

else

response.redirect“index.asp?action=login”

end if

case “inputadd”

recadd

'留言内容入库

case “editadd”

if seion(“adminpre”)“” then

editadd '编辑或回复留言入库

else

response.redirect“index.asp?action=login”

end if

case “logout” '管理员退出登录

seion(“adminpre”)=“”

response.redirect“index.asp” end select %>

<% call top(gb_name)'调用页面头部内容

select case action

case “”

listrec '显示留言信息

case “serguest”

serrec

'搜索留言

case “login”

login

'登录界面

case “input”

input

'输入留言界面

case “chklogin”

chklogin '检查登录,此函数可以放在顶部,但为了显示错误信息的工整性,我放到了此处

case “editrec”

editrec '修改信息界面

case “manage” '验证管理者是否

if seion(“adminpre”)=“” then

login

else

listrec

end if

case “m_write” '修改配置界面

if seion(“adminpre”)“” then

m_write

else

login

end if

case “m_person” '修改版主信息界面

if seion(“adminpre”)“” then

m_person

else

login

end if end select call bottom(gb_editioner)'调用页低信息

%>

最后我们一起来看看inc.asp文件内容,此文件中全部是index.asp文件调用的函数。

首先在文件头加上:来调用定义的变量。

1、首先我们写出引号和空格的转换函数,主要是为了解决数据与sql函数相冲突。

<% Function ChkString(string)if string = “” then string = “ ” ChkString = server.htmlencode(Replace(string, “'”, “''”))End Function

Function ChkUserString(string)string = ChkString(string)ChkUserString = server.htmlencode(Replace(string, “ ”, “”))End Function %>

2、关于页面头和页面低部函数,在第二讲中已经写出,这里不再重写。

3、登录界面 <%sub login%>

管理员登录

姓名:

密码:

<%end sub%>

4、验证管理员密码是否正确 <%end sub '验证登录密码 sub chklogin()

admin_name=chkstring(request(“username”))'取得表单数据 admin_paword=chkstring(request(“paword”))

strsql=“select admin_name,admin_paword from admin”

set rs = conn.Execute(strsql)

'读取数据库中用户和密码

if not(rs.bof and rs.eof)then

if admin_name=rs(“admin_name”)and admin_paword=rs(“admin_paword”)then

seion(“adminpre”)=chkstring(request(“username”))

'如果管理员名字和密码输入正确存取seion变量,以便管理员对留言簿的维护。

rs.close

set rs=nothing

conn.close

set conn=nothing '关闭数据库和表

response.redirect “index.asp” '回到首页

response.end '结束后面代码的操作

else

'验证用户名和密码输入错误的处理

response.write “你输入的用户名和密码不符!”

response.write “ 返回上一页”

rs.close

set rs=nothing

end if

else

response.write “登录出现错误或者数据库被破坏!”

end if

end sub %>

5、输入留言界面。思路:用户不用注册就可以留言,管理员留言时一些基本信息自动调用。<%sub input%>

姓名:

“>

留言内容[UBB代码]

头像: 1 2 3..........37 38 39 40 [查看头像]

Email:

”>

“头像”

oicq:

“>

来自:

北京

广东

上海

新疆

辽宁

广西

海南

湖南

甘肃

河北

湖北

江西

江苏

西藏

山东

浙江

安徽

福建

吉林

黑龙江

山西

云南

贵州

四川

陕西

重庆

天津

河南

青海

宁夏

台湾

香港

澳门

其它地区

Web名称:

”>

Web地址:

“>

悄悄话:

end sub%>

6、留言内容入库 sub recadd '读取表单数据

user_name=request(”username“)

user_email=request(”email“)

user_qq=request(”oicq“)

user_addre=request(”addre“)

user_homepage=request(”homepage“)

user_webname=request(”webname“)

user_image=request(”images“)

user_ip=request.servervariables(”remote_addr“)

user_content=chkuserstring(request(”content“))

user_silent=request(”silent“)

user_time=now()'将读取数据写入库

strSql = ”insert into content(user_name, user_qq,user_email,user_addre,user_homepage,user_webname,user_image,user_ip,user_content,user_silent,user_time)Values('“

strSql = StrSQl & user_name & ”', '“

strSql = StrSQl & user_qq & ”', '“

strSql = StrSQl & user_email & ”', '“

strSql = StrSQl & user_addre & ”', '“

strSql = StrSQl & user_homepage & ”', '“

strSql = StrSQl & user_webname & ”', '“

strSql = StrSQl & user_image & ”', '“

strSql = StrSQl & user_ip & ”', '“

strSql = StrSQl & user_content & ”', “

strSql = StrSQl & user_silent & ”, '“

strsql = strsql & now()&”')“

conn.Execute(StrSql)'关闭数据库

conn.close

set conn=nothing '返回留言簿首页

response.write”“

response.write”留言成功,,正回留言簿.......“ %> <%

response.end end sub %>

下载学用asp+acce制作留言簿word格式文档
下载学用asp+acce制作留言簿.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文