本 科 毕 业 论 文
论 文 题 目 :留言板的设计与实现 指 导 老 师 :林伟伟 学 生 姓 名 :
学 号 :W440909121300001 院 系 :网络教育学院 专 业 :计算机科学与技术 毕 业 时 间 :2011年6月
--
--
原 创 承 诺 书
我承诺所呈交的毕业论文是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果.若本论文及资料与以上承诺内容不符,本人愿意承担一切责任。
毕业论文作者签名:___ _____
日期:2011 年 2 月 10 日
--
--
摘要 随着Internet的发展,网站的作用越来越重要,被称之
为继广播、报纸、杂志、电视后的第五种媒体—-数字媒体,拥有众多优势,所以现在不少企业都有或正在建设自己的网站.而留言板作为网站重要的一个部分,从来就是一个大家交流的平台!留言板是一种最为简单的BBS应用,借助留言板,浏览者可以张贴留言的方式给站长、版主或其他浏览者进行留言和提问。
人类进入21世纪的今天,科学技术的突飞猛进,信息技术和网络技术的的迅速发展和广泛应用,人们的工作、生活、学习和交流方式也发生羞巨大改变,信息的获取、处理、交流和应用能力已经成为最重要的能力之一,本留言板是基于ASP和Access的,利用 ADO 数据库访问技术实现对数据库的各种管理操作,实现留言板的留言及管理功能。从而使得后台操作更加方便、快捷、的现实用户的注册、留言的回复和删除等。
本系统从构思、规划、设计到相关技术,结合常用的HTML、ASP技术,详细设计时不断地修正和完善,经过测试阶段地反复调试和验证,最终形成达到用户设计要求的可行系统。
关键词: 留言板 ASP 数据库 Access ADO
--
--
Abstract Along with the Internet develop
ment, the function of the website is more and more important, was called it as after broadcast, newspaper, magazine, television behind of the fifth media- numerical media, own numerous advantages, so not a few business enterprises of present all have or just constuct own website.But the message board be a fraction of the website importance, have always been is a platform of everyone alternating current, AC!The message board is the most simple BBS the one who apply, ask for help the message board, browse can paste up the message of mode give station-master, webmaster or other browsingses carries on the message sum’s lift to ask。
The mankind enter today for 21 centuries, science advances by leaps and bounds technically, information technology and network technique of quick development sum extensive pplication, the people's work, life, the study sum intersection streaming mode also takes place the huge change, the acquisition of the information, handle and communicate sum application the capability have already become one of the most important capabilities, this message board is according to ASP and Access of, make use of the ADO data base, DB access technique implementation to operate to various management of the data base, DB, carry out the message and the management function of the message board.Thus make the background operation more convenient, fast, of the revovery sum delete of the log-in, log-on, message of the realistic consumer etc。。
--
--
This system from conceive outline, program, design the related technique, combine the in common use HTML, technique of ASP, the hour of detailed design revises the sum constantly perfect, through the test phase earth iteration debug sum verification, the end forming attains the consumer design to request of can go the system。 Keyword: Message board ASP data base, DB Access ADOﻬ
目录
摘要ﻩ错误!未定义书签。
Abstract ........................................................................................................错误!未定义书签。 绪论....................................................................................................................错误!未定义书签。 第一章 系统开发技术与环境ﻩ错误!未定义书签。
1.1开发所需的硬件环境与软件环境 ...................................................错误!未定义书签。 1.2。1所需软件环境 .............................................................................错误!未定义书签。 2。1开发工具简介ﻩ错误!未定义书签。 2。1.1 ASP简介ﻩ错误!未定义书签。 2.1.2 IIS简介ﻩ错误!未定义书签。
2.1。3 Access简介 ..........................................................................错误!未定义书签。 2.2开发模式 .........................................................................................错误!未定义书签。 第二章 系统分析与设计 ................................................................................错误!未定义书签。
2.1需求分析 .............................................................................................错误!未定义书签。 2.2模块设计 ...........................................................................................错误!未定义书签。 2。3数据库结构设计 ...............................................................................错误!未定义书签。 2.3.1系统 E—R图ﻩ错误!未定义书签。
2。3。2数据库表的设计 .......................................................................错误!未定义书签。 第三章 系统实现 ........................................................................................错误!未定义书签。
3.1创建与连接数据库ﻩ错误!未定义书签。
3.1.1数据库的连接 ...........................................................................错误!未定义书签。 3.1。2 数据添加 ......................................................................................错误!未定义书签。 3.1。3数据删除 .....................................................................................错误!未定义书签。 3.1.4数据加密 .......................................................................................错误!未定义书签。 3.2 留言信息页面模块设计ﻩ错误!未定义书签。
3.2.1查看留言模块 ...............................................................................错误!未定义书签。 3。2.2留言发布模块ﻩ错误!未定义书签。 3.3留言管理模块设计ﻩ错误!未定义书签。 3.3.1管理员登录模块ﻩ错误!未定义书签。 3。3。2版面管理模块ﻩ错误!未定义书签。 3.3.3参数设置模块ﻩ错误!未定义书签。 第四章 系统测试ﻩ错误!未定义书签。
--
--
4。1系统测试(环境)ﻩ错误!未定义书签。
4.1。1系统服务端测试环境 ...................................................................错误!未定义书签。 4。1.2系统客户端测试环境 ...............................................................错误!未定义书签。 4。2测试项目 .........................................................................................错误!未定义书签。 4.2。1系统功能测试41ﻩ
4.2。2用户界面测试ﻩ错误!未定义书签。 总结ﻩ错误!未定义书签。
致谢....................................................................................................................错误!未定义书签。 参考文献ﻩ错误!未定义书签。
--
--
绪论
随着网络技术的飞速发展,兴起了网络的热潮,一些公司正在积极建立自己的网站,一些大学也已经开设了网络相关的专业及课程。 同时网站的重要性也越来越重要。而作为网站中交流的中心,留言板起到了至关重要的地位。它有助于版主收集网站的反馈信息,也是客户通过网络收集信息的有力工具。
本系统采用ASP实现BBS留言系统。在开发过程中实现了留言系统的部分管理,并且对留言的页面布局进行详细设计,使页面美观,体现所有功能;还有对系统管理页面的设计,使管理员能更方便清楚的进行用户管理、页面管理等。最后,该留言将会是一个功能强大、美观方便、畅所欲言的“公共场所”。
--
--
第一章 系统开发技术与环境
1.1开发所需的硬件环境与软件环境
1。1.1所需硬件环境
系统对运行环境的要求: 硬件环境 (1)服务器端
服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的情况下,服务器的性能往往不尽人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。
本网络系统服务器端的配置如下:
处理器:Inter Pentium(Celeron) 4 1.6GHz 或更高。 内存:512MB 硬盘空间:320G
显卡:LCD显示适配器 (2)客户端
因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此需要的配置应该高于下面的配置:
处理器:Inter Pentium(Celeron) 166MX或更高。 内存:32MB 硬盘空间:1GB
显卡:SVGA显示适配器 2) 软件环境 (1)服务器端
操作系统:windows 2000/XP/2003 网络协议:TCP/IP。
Web服务器:Weblogic.server 8.1 数据库:Accesss (2)用户端
操作系统:Windows 93/95/98/ME/2000/XP/2003 网络协议:TCP/IP
浏览器:Internet Explore 5。0以上建议分辨率为1024*768。
1。2.1所需软件环境
系统平台:Windows2000 or Windows XP 数据库服务器:Microsoft Accesss
开发工具:Dreamweaver MX 2004、firework MX 2004 、Photoshop6.0
--
--
2.1开发工具简介
2。1.1 ASP简介
Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之中 , 通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序.有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序.当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 以下罗列了 Active Server Pages 所独具的一些特点:
1。 使用 VBScript 、 JScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成网站的应用程序。
2。 无须 compile 编译,容易编写,可在服务器端直接执行.
3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。
4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages 所使用的脚本语言 (VBScript 、 Jscript) 均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
5。Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VBScript 或 JScript 语言来设计外,还通过 plug-in 的方式,使用由第三方所提供的其他脚本语言,譬如 REXX 、 Perl 、 Tcl 等.脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。
6.Active Server Pages 的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
7. 可使用服务器端的脚本来产生客户端的脚本。 8. 物件导向( Object-oriented ).
9.ActiveX Server Components(ActiveX 服务器元件 ) 具有无限可扩充性。可以使用 Visual Basic 、 Java 、 Visual C++ 、 COBOL 等编程语言来编写你所需要的 ActiveX Server Component 。
2.1.2 IIS简介
IIS是Internet Information Server的缩写,它是微软公司主推的服务器,最新的版本是Windows2003里面包含的IIS 6,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(Fele Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。
IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBscript,Jscript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器 。
--
--
IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。
IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Nerwork Management Protocol,简单网络管理协议)之类的NT已有管理工具.
IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据.用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。
IIS的一个重要特性是支持ASP。IIS 3。0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBscript,Jscript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持.
2.1.3 Access简介
Access是一个数据库管理系统,它之所以被集成到Office中而不是Visual Studio中,是因为它与其它的数据库管理系统(如Visual FoxPro)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。
Access可以实现建立数据库、报表,以及对数据库、报表的修改、查询等功能
2.2开发模式
开发模式一般分为B/S模式和C/S模式。B/S结构,即Browser/Server(浏览器/
服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3—tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构.显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步.
本站采用B/S开发模式,与传统的C/S模式相比,B/S结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便.而且使维护任务层次化:管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护
--
--
第二章 系统分析与设计
2.1需求分析
留言板提供网站访客的留言功能,它接收访问者输入的信息,将其存入网站数据库,并且通过Web页面将访客的留言显示出来。因此一个留言板分为提交留言和显示留言两部分。
提交留言功能将数据存入数据库,显示留言功能将数据库中的信息显示于页面上。 具体流程图如2.1图
修改用户信息 浏览者 浏览板块 浏览帖子 回帖 注册登录 用户 发帖 管理用户 管理板块 管理帖子 管理员
图2.1 留言功能流程图
通过上面的分析,总结留言的功能有以下几项: 分两种类型的用户,有不同权限。
1、 普通用户可以浏览。
2、 注册用户可以发表留言,并能对自己发表的留言进行管理(删除、修改)。 功能与模块: 1、注册模块
普通用户通过注册可以成为注册用户。 注册用户可以修改登录密码. 2。管理员模块
对发表的帖子进行审核,对发表的话题或者帖子进行管理,删除和修改等。
2.2模块设计
从上一节需求分析可以知道,留言功能分为用户使用的基本功能和管理员管理系统的功能两类,因此模块设计也分为两大类。留言的模块体系图如图1。2所示。
--
--
BBS论坛
图2。2 留言的模块图
会员登录模块 会员浏览模块 会员发帖回帖模块 管理自己留言模块 管理员登录 管理留言设置模块 管理员管理用户模块 会员模块 管理员模块 BBS系统包括以下主要功能模块: 1.会员功能:
(1)登录功能模块:用户个人注册、登录,管理员登录;
(2)浏览功能模块:用户浏览版块、浏览主题帖列表、查看留言; (3)发帖回帖功能模块:用户发帖,管理自己的留言. 2。管理员功能:
(1)留言管理功能模块:管理员编辑、删除;
(2)留言设置功能模块:管理员设置留言参数; (3)用户管理模块:管理员添加、删除。
2.3数据库结构设计
2.3.1系统 E—R图
该系统的实体有:管理员信息实体、用户信息实体、留言实体、版面信息实体。实体之间的E—R图如图2。3所示。
--
--
删除 管理员 转移 浏览帖子 用户 管理帖子 置顶 回帖 发帖 编辑 指定精华
图2.3 实体间的关系E—R图
2。3。2数据库表的设计
本留言板系统采用Access作为数据库,考虑到了以下几点: 1.Access数据库使用简单,可以迅速掌握。
2.Access数据库的ODBC驱动程序支持的SQL指令全。ACCESS具有强大的数据库功能,结构简单、理论基础坚实、独立性高。适合开发中型管理系统。
3。用Access数据库开发的程序转化为SQL Server数据库也非常简单,只要用 SQL Server的导入功能将Access数据库转化为SQL Server数据库。而对于数据库语句,因为采用的是标准的SQL语言,读取Access数据库和读取SQL Server数据库基本上也是一样的.
以下就介绍留言板数据库的组成:
1.数据库整体介绍: 留言板数据库总共有4张表,具体如下: 数据库表名 admin 说明 表的作用 用来存放管理员的名字和密码 用来存放用户的名字和密码 用来存放用户的信息和留言 用来存放回复者信息和回复内容 表4-1
管理登陆 用户登录 留言板的相关信息 留言板的相关信息 user Message Reply --
--
2.数据库各个表的介绍:
Admin表存放的是后台管理员的用户名和密码,详细设计如下图所示:
Admin表 :
表 4-2
表user:
表4—3
--
--
表Message:
表4—4
表Reply:
表4—5
--
--
第三章 系统实现
3。1创建与连接数据库
3.1.1数据库的连接
Access是文件型数据库,一个文件就是一个数据库,可以利用ASP中的语法直接连接。在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式如下:
〈%
’==============================================================
'强制声明变量 '==============================================================
Option Explicit Dim Page,i,Action
Dim conn,connstr,rs,sql
’============================================================== ’数据库连接
'==============================================================
Set Conn=Server.CreateObject(”Adodb.Connection") Set Rs=Server。CreateObject("Adodb.Recordset”) Connstr=”Provider=Microsoft.Jet。OLEDB。4.0;Data Source=" & Server.MapPath(”Inc/jyp。mdb") ﻩ’数据库路径和名称
Conn。Open Connstr
’==============================================================
'取得参数
'==============================================================
Set Rs = Conn。Execute(\"Select parameters From [config]\")
Dim para
Dim Systemname,Systemversion
--
--
para = split(Trim(Rs("parameters")),\"/")
Systemname = ”jyp在线留系统\"
Rs.Close 关闭数据 Set Rs = Nothing %〉
上面在打开数据库并完成相应的操作后,应关闭数据库连接。当不再需要连接时将其
关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。
用Connection对象的Close方法终止Connection对象和数据库之间的连接.
3.1。2 数据添加
ﻩ ﻩ ﻩ ﻩ
Rs.Addnew '添加一条 ﻩﻩ Rs(\"Means”) = Chknum(Request.Form("Means"))
ﻩﻩRs(”Content”) = Chkstr(Request.Form(\"Content”)) ﻩ ﻩRs(”Reply”) = Chknum(Request。Form("Reply"))
ﻩ Rs(\"ip”) = Request.ServerVariables("REMOTE_ADDR”) ﻩ Rs(”Time”) = Now() ﻩ If u_id = 0 Then ﻩﻩﻩRs("userid”) = 0
ﻩﻩRs(\"name”) = Replace(Trim(Request.Form(”Truename\")),”'\ '名字
ﻩRs(\"oicq") = Replace(Trim(Request.Form(”oicq\")),\"’”,\"”) ' oicq
ﻩRs("email”) = Replace(Trim(Request.Form(\"email”)),\"’”,\"\") 'email地址 ﻩﻩRs(\"tel\") = Replace(Trim(Request.Form(\"tel”)),\"'”,””) '电话
ﻩ ﻩRs("address\") = Replace(Trim(Request.Form("address”)),"’",\"”) '地址
Rs(”sex”) = ChkNum(Request。Form(”sex\")) '性别 ﻩ ﻩﻩ ﻩﻩﻩElse
ﻩﻩDim rss ﻩﻩ
ﻩ Set Rss = Conn。Execute(\"Select * From [user] Where u_id = \"&u_id&” ”)
ﻩ ﻩIF Not Rss.Eof Then
ﻩ ﻩﻩﻩRs("userid\") = Rss(”u_id") ﻩﻩﻩﻩRs(\"name\") = Rss("truename\") ﻩﻩ ﻩ Rs("oicq") = Rss("oicq”)
--
--
ﻩﻩﻩ ﻩRs("email\") = Rss("email") ﻩ ﻩﻩRs(\"tel”) = Rss(\"tel”)
ﻩ Rs(\"address”) = Rss("address\") ﻩ ﻩﻩ Rs("sex”) = ChkNum(Rss("sex\")) ﻩ Else
ﻩﻩﻩﻩReturnError(”操作错误!\") ﻩ End If ﻩﻩEnd If ﻩRs.Updateﻩﻩ ﻩﻩ ﻩﻩ ﻩﻩ’更新数据库
3。1。3数据删除
<%Action = LCase(request("action\")) ’得到action值 Select Case Trim(Action) ﻩ'调用过程 Case "1”
ﻩﻩCall Deleteall() ﻩCase "2"
ﻩ Call Audall() Case \"3”
ﻩCall Istop() Case \"4”
ﻩﻩCall Noistop() Case \"5"
ﻩ Call Noaud() ﻩCase "look" ﻩ Call Look() Case ”reply\" ﻩﻩCall Reply()
ﻩCase ”savereply” ﻩCall Savereply() ﻩCase Else ﻩCall Show() End Select
Sub Show()
ﻩDim auditing,adminshownum
If para(17) <=0 Then ﻩ adminshownum = 1 ﻩElse
ﻩ adminshownum = para(17) End If ﻩ
ﻩauditing="" ﻩ'判断是否显示未审核的留言
--
--
ﻩIf Request.QueryString(\"au\") = "\" Then ﻩauditing = \"”
ﻩElseif Request.QueryString(\"au”) = 0 Then ﻩauditing = " Where Auditing = 0"
ﻩElseif Request。QueryString("au”) = 1 Then ﻩauditing = " Where Auditing = 1" ﻩEnd If
Sql="Select * From [Message] "&Auditing&” Order By Istop Desc,id Desc"
’res(sql)
Set Rs = Server.CreateObject(”Adodb.Recordset”) Rs。Open Sql,Conn,1,3,1 If Rs.Eof Then
Response。Write(”
ﻩRs。Pagesize = ”\"&adminshownum&”\"
Page = ChkNum(Request("Page\")) 'ChkNum 强转数字函数 If Page=”" Or Page<1 Then Page=1
ﻩIf Page>= Rs.Pagecount Then Page=Rs。Pagecount Rs.AbsolutePage = Page
Call Numpage() '数字分页
……………………………………部分代码省略…………………………………….
ﻩConn。Execute \"Delete from [message] where id=”&num
Conn。Execute ”Delete from [Reply] where Messageid=”&num
ﻩNext
ﻩﻩReturnOK("操作成功”) Else
ﻩReturnError(\"超作错误 请选择要删除的记录!”) End If End Sub
Sub Audall() ﻩDim id,num
ﻩid = Request(\"id") If id<>"” Then
For Each num In Request(\"id\")
--
--
ﻩﻩConn。Execute \"Update [message] Set Auditing = 1 where id="&num
Next
ﻩReturnOK(\"操作成功\") ﻩElse
ReturnError(”超作错误 请选择要审核的记录!\") End If End Sub
Sub Istop() ﻩDim id,num
ﻩid = Request(\"id”) If id<〉"" Then
ﻩ For Each num In Request(”id”)
ﻩConn。Execute "update [message] Set istop = 1 where id=”&num
ﻩNext
ﻩﻩReturnOK(”操作成功") ﻩElse
ﻩﻩReturnError("超作错误 请选择要置顶的记录!”) ﻩEnd If End Sub
Sub Noistop() Dim id,num
ﻩid = Request("id\") ﻩIf id<〉"” Then
ﻩﻩFor Each num In Request(”id\")
ﻩﻩConn。Execute ”update [message] Set istop = 0 where id=”&num
Next
ﻩﻩReturnOK(\"操作成功\") ﻩElse
ﻩReturnError(”超作错误 请选择要置顶的记录!”) ﻩEnd If End Sub
Sub noaud() Dim id,num
ﻩid = Request(”id\") ﻩIf id〈>”” Then
ﻩ For Each num In Request(\"id”)
ﻩﻩConn.Execute "update [message] Set Auditing = 0 where id="&num
--
--
ﻩNext
ReturnOK(”操作成功\") ﻩElse
ﻩﻩReturnError(\"超作错误 请选择要审核的记录!”) End If End Sub%〉
3。1。4数据加密
MD5加密算法简单介绍: 在现阶段,我们一般认为存在两种加密方式,单向加密和双向加密.双向加密是加密算法中最常用的,它将我们可以直接理解的明文数据加密为我们不可直接理解的密文数据,然后,在需要的时候,可以使用一定的算法将这些加密以后的密文解密为原来可以理解的明文.双向加密适合于隐秘通讯,比如,我们在网上购物的时候,需要向网站提交信用卡密码,我们当然不希望我们的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,我们希望我们的信用卡密码是通过加密以后,再在网络传送,这样,网站接受到我们的数据以后,通过解密算法就可以得到准确的信用卡账号。
单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。可能我们立即就会想,这样的加密有什么用处?不能解密的加密算法有什么作用呢?在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义.
MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的. 本系统采用的是md5加密来保存用户密码和管理员密码,即使是被人下载了数据库也是不可能看到密码的,因为md5加密后的数据是不可能逆转的,也就是不可能得到真实的密码
Md5加密算法:
本系统算法加密文件,存放在Md5。Asp文件中
--
--
3.2 留言信息页面模块设计3。2。1查看留言模块
--
--
图3。1 浏览留言页面图
如图3.1在此模块中,左边分别为,注册和非注册会员提供不同的显示.注册会员会
在左边显示出会员的头像,会员的等级,会员的姓名,会员的积分,登录次数,注册时间,和最近登录时间.而非注册会员则只显示会员的名字和会员的头像。而版面的右边显示的是会员的留言内容。内容的上方提供了便捷的回复,显示留言者ip地址,支持和反对等便捷按钮.一下是本模块实现的关键数据库连接代码:
<%
Call Top()
Action = LCase(Request(\"action")) '得到action值 Select Case Trim(Action)ﻩ ’调用过程 ﻩCase ”up" Call Up() Case \"down" ﻩCall Down() ﻩCase \"reply\" ﻩ Call Reply() ﻩCase \"saveuser” ﻩ Call Saveuser() Case Else
--
--
Call Show() End Select Sub Show() Dim Auditing
Auditing=”"ﻩﻩﻩﻩ '判断是否显示未审核的留言 ﻩIf para(4) = 1 Then
ﻩﻩAuditing = "And Auditing = 1\" ﻩElse Auditing = \"” End If Sql=”Select * From [Message] Where Means = 0 \"&Auditing&" Order By Istop Desc,id Desc"
'res(sql)
Set Rs=Server.CreateObject(\"Adodb.Recordset\") Rs。Open Sql,Conn,1,3,1 If Rs.Eof Then Response.Write(\" Response.Write("没有记录”) Response.Write(”〈/td>”)&vbcrlf ﻩResponse。Write("</tr>”)&vbcrlf Response。Write(\"\")&vbcrlf Else Dim indexshownum If para(7) 〈= 0 Then ﻩindexshownum = 1 Else indexshownum = para(7) End If Rs。Pagesize = \"”&indexshownum&\"\" ﻩPage = ChkNum(Request(\"Page"))ﻩ'ChkNum 强转数字函数 ﻩIf Page=\"\" Or Page<1 Then Page=1 ﻩIf Page〉= Rs.Pagecount Then Page=Rs.Pagecount ﻩRs.AbsolutePage = Page Call Numpage()ﻩ '数字分页 ﻩIf para(5) = 1 Then ﻩﻩﻩﻩ ﻩ Response.Write(”〈div class='reply' id='div0'>")&vbcrlf ﻩ ﻩResponse。Write(”div>\")&vbcrlf -- -- ﻩEnd If Response.Write("For i=1 To Rs.Pagesize ﻩdim bg ﻩﻩIf i Mod 2 = 0 Then ﻩﻩbg = \" bgcolor=\""#B9E1E8”” \" ﻩﻩElse ﻩﻩbg = " bgcolor="\"#47AEBF”\" " ﻩEnd If ﻩ Response。Write(\"〈table class=\"”message\"\" width=”\"968\"" border=””0"\" ”&bg&\" align=””center\"” cellpadding=\"\"0\"" cellspacing=””1"”〉")&vbcrlf Response.Write(”〈tr>”)&vbcrlf ﻩResponse.Write(\"〈td width=\"\"200”” bgcolor=\"”#FFFFFF\"”〉”)&vbcrlf ﻩ If Rs("userid”) = 0 Then ﻩ ﻩResponse.Write(”<p class=””textcolor1”\">非会员留言 Else ﻩﻩﻩIf Rs("istop\")〉0 Thenﻩ ﻩ'判断是留言是否置顶 ﻩﻩResponse.Write("〈p class=\"”textcolorred””>置顶留言</p>\")&vbcrlf Else ﻩﻩ Response.Write(” 一般留言</p>")&vbcrlf End If …………………………部分代码省略………………………………………………… ﻩIf para(6) = 1 Then Call Showreply(\"”&Rs(”id")&\"\") '判断是否显示回复,得到对应ID的回复内容 Response.Write(”<div class='reply’ id='div”&i&\"’>”)&vbcrlf Response.Write(\" Response。Write(”您的姓名:〈input name="”Rep_name\"” type=\""text\"” value=\""”&Session("userid”)&\"”” /〉")&vbcrlf ﻩResponse。Write("<input name="”check_name"\" type=""checkbox"\" id="”checkbox”” value=””1\"" /〉匿名 ﻩResponse。Write(””)&vbcrlf Response。Write(\"〈input name=""action”\" type=\"”hidd -- -- en”\" value=”\"reply”” />\")&vbcrlf Response.Write(”<input type=”\"submit"" name=\""Submit”\" value=”” 回 复 "\" class=””button”” />”)&vbcrlf Response。Write("〈/form>")&vbcrlf Response.Write(”</div>")&vbcrlf ﻩResponse.Write("〈div class=\""clear"\">div>\")&vbcrlf If para(6) = 1 Then Call Showadmin(\"”&Rs(”id”)&"\") ’显示管理员回复,得到对应ID的回复内容 Response.Write(”</td〉”)&vbcrlf Response。Write(\"</tr>")&vbcrlf Response.Write("〈/table〉\")&vbcrlf Rs.Movenext If Rs.Eof Then Exit For Next End If Response.Write(\"留言内容结束〈![endif]-->")&vbcrlf ﻩCall Textpage() ﻩﻩﻩ ’文字分页 Rs.Close:Set Rs = Nothing End Sub 3。2.2留言发布模块 ﻩﻩﻩ -- -- 图3。2 非注册会员发布留言页面图 图3。3 注册会员发布留言页面图 如图3.2和图3.3中,此模块为注册会员和非注册会员也提供了不同的留言界面。在 非注册会员中提供了留言设置,可以设置为私密留言,或者不允许回复.还提供了非注册会员的名字,电话,地址,e—mail,oicq,性别,表情的选择等功能。而注册会员只显示留言设置和表情的选择,以为注册会员在注册时已提供了个人资料。所以不必重复.一下是此模块实现的关键代码: <%End Sub Sub Savemessage() ﻩDim u_id,code,Content,teststr ﻩteststr = Request。Form(Session("antry\")) ﻩﻩIf teststr = ”” Then ReturnError(”请勿反复提交!\") ﻩEnd If ﻩ code = Replace(Trim(Request。Form(\"code”)),”'\",\"") u_id = chknum(Session(\"u_id")) ﻩContent = chkstr(Request.Form(\"Content\")) If code = ”\" Then ﻩﻩReturnError("请填写验证码!”) End If ﻩ If Len(code) <〉6 Thenﻩ ﻩ ReturnError("验证码字符数不正确!") ﻩEnd If ﻩ If Session(\"chkcode") = "\" Then -- -- ReturnError("验证超时!\") ﻩ End If ﻩ If code 〈〉 CStr(Session(”chkcode”)) Then ReturnError(\"您输入的确认码和系统产生的不一致,或验证码超时!请重新输入!”) End If ﻩﻩIf Len(Content) 〈 10 Then ﻩﻩ ReturnError(”留言内容不能小于10个字符!\") End If ﻩ If chknum(Session(”u_id”)) = 0 Then If Len(Request.Form("Truename")) < 2 Then ﻩﻩReturnError(”请填写您的姓名,不能少于2个字符!\") ﻩﻩEnd If ﻩﻩ ﻩIf Len(Request.Form(”Truename”)) 〉 10 Then ﻩ ReturnError(\"阁下名字太长了吧!") ﻩEnd If ﻩ ﻩﻩIf Trim(Request.Form("email\")) <〉 ”\" Then ﻩﻩIf chkemail(Trim(Request。Form("email\"))) = False ReturnError(\"E—mail格式不正确!\") ﻩ ﻩEnd IF End If End If ﻩ Sql=”Select * From [message] ” ﻩSet Rs=Server.CreateObject(\"Adodb.Recordset\") ﻩRs。Open Sql,Conn,1,3,1 ﻩDim text,mesint If para(4) = 1 Then ﻩﻩ'判断是否需要审核 ﻩtext = "我们会尽快审核您的留言!" ﻩ mesint = 0 Else If u_id = 0 Then ﻩ text = ”此次操作为非会员留言,会员留言有积分奖励哦!\" ﻩmesint = 0 Elseif Chknum(Request.Form(”Means\")) = 1 then ﻩ text = \"此次操作为私密留言,没有积分奖励!\" mesint = 0 ﻩElse ﻩ ﻩtext = ”系统为您增加积分 "&Chknum(para(11))&\" 分” ﻩmesint = \""&Chknum(para(11))&\"\" ﻩ End If End If ﻩ ﻩRs.Addnew ﻩﻩﻩRs("Means") = Chknum(Request.Form("Means\")) ﻩﻩﻩRs("Content\") = Chkstr(Request.Form(\"Content”)) -- Then -- ﻩ Rs(”Reply”) = Chknum(Request。Form(”Reply\")) ﻩ Rs(\"ip\") = Request.ServerVariables(”REMOTE_ADDR") ﻩﻩRs("Time\") = Now() ﻩﻩIf u_id = 0 Then ﻩ Rs(\"userid") = 0 ﻩﻩ Rs(”name") = Replace(Trim(Request.Form(”Truename”)),”'",\"\") ﻩ Rs("oicq\") = Replace(Trim(Request.Form(”oicq”)),”’”,\"\") ﻩ Rs(”email") = Replace(Trim(Request。Form(\"email”)),"'",\"") ﻩﻩ Rs(\"tel\") = Replace(Trim(Request.Form(”tel\")),”'",”\") ﻩﻩﻩﻩRs(\"address") = Replace(Trim(Request.Form("address")),”'”,\"") ﻩﻩﻩRs(”sex”) = ChkNum(Request.Form("sex\")) ﻩﻩﻩ ﻩﻩElse ﻩﻩDim rss ﻩ ﻩ Set Rss = Conn。Execute("Select * From [user] Where u_id = \"&u_id&\" \") ﻩﻩ IF Not Rss。Eof Then ﻩﻩ Rs(\"userid") = Rss(”u_id”) ﻩﻩﻩRs(\"name") = Rss(”truename\") ﻩﻩ Rs(\"oicq") = Rss("oicq\") ﻩﻩ Rs("email”) = Rss(\"email\") ﻩ Rs(”tel\") = Rss(”tel") ﻩ ﻩ Rs(”address") = Rss(”address\") ﻩ ﻩ Rs(”sex”) = ChkNum(Rss(”sex”)) Else ﻩﻩﻩ ReturnError(”操作错误!\") ﻩﻩ End If End If ﻩRs。Update ﻩﻩIF u_id <〉 0 And para(4) = 0 Then '如果不需要审核就直接更新会员积分 ﻩ ﻩﻩ Dim rsint ﻩ ﻩSet Rsint = Server。CreateObject(”Adodb。Recordset\") ﻩ ﻩSql = "Select * From [user] Where u_id = ”&u_id&" " ﻩ ﻩﻩRsint。Open Sql,Conn,1,3,1 ﻩ ﻩﻩRsint("Integral\") = Rsint(\"Integral") + mesint ﻩ ﻩﻩRsint.Update ﻩﻩ Rsint。Close:Set Rsint = Nothing ﻩﻩﻩEnd If ﻩ Session(”antry") = ”\" Returnok("发布留言成功!”&text&”") Rs.Close:Set Rs=Nothing -- -- End Sub Call Bottom()%〉 3。3留言管理模块设计 3.3.1管理员登录模块 图3.4 留言管理登录页面图 如图3。4所示,此模块访问页面在admin_login。asp页面中, 为后台管理员登录所用,关键代码如下: <%Call Top() Action = LCase(request(”action\")) Select Case Trim(Action) Case ”chk” ﻩ Call Chk() ﻩCase Else ﻩ Call Show() End Select Sub Show() Response.Write ”〈!--[if !IE]>管理员登陆〈![endif]-—〉” & vbCrLf Response.Write \" ﻩResponse.Write \"<form id=\"\"form1”” name="”form1\"” method=””post\"” action=”"?action=chk"\">" & vbCrLf Response。Write \"<tr〉” & vbCrLf -- -- Response.Write \" Response.Write ”<td width=”"88%"\"〉&nbsp;〈/td>” & vbCrLf Response.Write ”</tr>" & vbCrLf Response.Write "〈tr>" & vbCrLf Response。Write ” 〈td height="”30"”〉用户名:〈/td〉\" & vbCrLf Response.Write " <td〉<input type=”\"text”\" name="”adminname\"” /> 请输入您的帐号!</td>" & vbCrLf Response.Write \" Response.Write \" 〈td height=\"”30\"”>密码:</td>” & vbCrLf Response。Write ” <td><input type=\"”password\"” name=\""password\"" /〉 请输入您的密码!Response.Write \" 〈/tr〉” & vbCrLf Response。Write " <tr〉\" & vbCrLf Response.Write ” Response.Write " 〈img src=”"images/code。asp\"” align=””absmiddle\"” onclick="\"this.src=’images/code。asp?rndcode=’ + Math。random();”\" style=””cursor:pointer;”” alt=\"”看不清请点击更换!"” /> 如看不清请点击更换!注意小写。〈/td〉\" & vbCrLf Response。Write ” 〈/tr>\" & vbCrLf ﻩResponse.Write ” Response。Write "〈/tr>” & vbCrLf Response。Write \"〈tr>\" & vbCrLf Response.Write ”〈td>&nbsp; Response。Write \"〈td height="”50"\" colspan=""2\"\" align=\"\"center\"">\" & vbCrLf ﻩResponse.Write ”Response。Write ”-- -- lass=\"\"button”" onclick=”\"window。location='index.asp'”\" value=\"” 离 开 \""/〉" & vbCrLf Response。Write ”Response。Write ”〈/tr〉\" & vbCrLf Response.Write \"form>” & vbCrLf Response.Write \"〈/table>\" & vbCrLf Response。Write "〈/div>" & vbCrLf Response.Write "<!--[if !IE]〉管理员登陆结束<![endif]--〉\" & vbCrLf End Sub Sub Chk() ﻩDim adminname,password,code adminname = Replace(Trim(Request.Form(\"adminname")),”'”,\"\") password = Replace(Trim(Request。Form("password\")),”'\","”) code = Replace(Trim(Request.Form("code”)),”'\",””) ﻩIf code = ”\" Then ReturnError("请填写验证码!\") ﻩ End If ﻩﻩﻩﻩIf Len(code) <>6 Thenﻩ ﻩ ﻩReturnError(”验证码字符数不正确!”) ﻩ End If ﻩ If Session(”chkcode\") = "" Then ﻩ ﻩReturnError(\"验证超时!”) ﻩﻩEnd If ﻩﻩﻩ If code 〈> CStr(Session(\"chkcode\")) Then ﻩ ReturnError("您输入的确认码和系统产生的不一致,请重新输入!\") End If ﻩﻩ If adminname = "\" Then ﻩ ReturnError(\"请填写用户名!”) ﻩ End If ﻩﻩ If password = \"\" Then ﻩ ReturnError(”请填写密码!") ﻩ End If Sql=\"Select * From [admin] Where adminname = ’\"&adminname&”’\" ﻩSet Rs=Server.Createobject("Adodb.Recordset”) Rs.Open Sql,Conn,1,3 ﻩﻩIf Rs。Eof Then ﻩﻩﻩReturnError(”用户名不正确!”) ﻩ End If ﻩﻩIf md5(password)<>Rs(”password\") Then ﻩﻩReturnError(\"密码不正确!\") End If ﻩRs(\"Logintmie”) = Now() -- -- Rs("Loginip”) = Request。ServerVariables(\"REMOTE_ADDR”) ﻩRs(\"Loginhits\") = Rs(”Loginhits”) + 1 ﻩRs。Update Session("adminname”) = Trim(rs("adminname”)) ﻩﻩSession(\"Gradename”) = Trim(rs(\"Gradename”)) ﻩSession(\"Grade") = Trim(rs(\"Grade\")) ﻩ Session。TimeOut = 120 ’登陆超时时间 单位 分钟 ﻩRs.Close ﻩSet Rs = Nothing ﻩConn.Close ﻩSet Conn=Nothing Alert \"登陆成功”,\"admin_index.asp\" End Sub ﻩCall Bottom()%> 3.3.2版面管理模块 图3。5 留言管理页面图 如图3。5所示,此模块为管理员登录后,对会员和非注册会员的留言进行管理的界面,在此几面中为管理员提供了,对留言的审核,留言的查看,留言的回复。还为管理员提供了一个便捷的功能,就是可以批量回复,批量审核和批量删除等便捷功能。本模块实现的关键代码如下: <%Action = LCase(request("action”))ﻩ'得到action值 Select Case Trim(Action)ﻩﻩ ’调用过程 Case \"1\" ﻩﻩCall Deleteall() ﻩCase "2” ﻩCall Audall() Case \"3” ﻩCall Istop() ﻩCase "4” ﻩﻩCall Noistop() -- -- Case \"5" ﻩﻩCall Noaud() Case "look” ﻩﻩCall Look() Case ”reply” ﻩﻩCall Reply() ﻩCase \"savereply\" Call Savereply() Case Else ﻩﻩCall Show() End Select Sub Show() ﻩDim auditing,adminshownum ﻩIf para(17) 〈=0 Then ﻩ adminshownum = 1 ﻩElse adminshownum = para(17) ﻩEnd If ﻩ ﻩauditing=\"” ﻩﻩﻩﻩﻩ '判断是否显示未审核的留言 ﻩIf Request.QueryString("au\") = \"” Then ﻩﻩauditing = ”\" Elseif Request.QueryString(\"au") = 0 Then ﻩauditing = " Where Auditing = 0” ﻩElseif Request.QueryString("au") = 1 Then ﻩauditing = \" Where Auditing = 1” ﻩEnd If Sql=\"Select * From [Message] \"&Auditing&" Order By Istop Desc,id Desc” ’res(sql) Set Rs = Server。CreateObject(”Adodb.Recordset”) Rs。Open Sql,Conn,1,3,1 If Rs。Eof Then Response.Write(”〈div class=\""currency””〉没有记录Else Rs.Pagesize = \""&adminshownum&\"” ﻩPage = ChkNum(Request(\"Page"))ﻩ'ChkNum 强转数字函数 If Page=”\" Or Page<1 Then Page=1 ﻩIf Page>= Rs。Pagecount Then Page=Rs.Pagecount ﻩRs。AbsolutePage = Page -- -- ……………………………………。.部分代码省略………………………。。。。.。.。.。。。...。。。。...。.....。..。。 ﻩSql=\"Select * From [Reply] \" ﻩ Set Rs = Server。CreateObject(”Adodb。Recordset") ﻩﻩRs.Open Sql,Conn,1,3,1 Rs.Addnewﻩﻩﻩﻩ ﻩﻩ ﻩ’记录新的一条数据 Rs(\"Messageid\") = Chknum(Request。Form(\"Messageid")) ﻩﻩRs("Content") = Content ﻩﻩRs(\"Rep_name”) = Request.Form(”Rep_name”) Rs(”Rep_grade\") = Chknum(Request.Form(\"Rep_grade")) ﻩﻩRs("time")= Now() ﻩ Rs.Update Rs。Close:Set Rs=Nothing ReturnOK(”回复留言成功”) ﻩﻩ ﻩEnd If End Sub Sub Deleteall() Dim id,num ﻩid = Request("id\") If id<〉\"" Then ﻩ For Each num In Request("id”) ﻩConn。Execute "Delete from [message] where id=\"&num Conn.Execute "Delete from [Reply] where Messageid=\"&num ﻩNext ﻩReturnOK(\"操作成功”) ﻩElse ﻩﻩReturnError("超作错误 请选择要删除的记录!”) End If End Sub Sub Audall() Dim id,num id = Request(”id\") If id〈〉”\" Then For Each num In Request("id") Conn.Execute ”Update [message] Set Auditing = 1 where id="&num Next ﻩReturnOK("操作成功") ﻩElse ReturnError(”超作错误 请选择要审核的记录!”) ﻩEnd If -- -- End Sub Sub Istop() Dim id,num id = Request(\"id\") ﻩIf id<〉”\" Then ﻩﻩFor Each num In Request("id\") Conn.Execute \"update [message] Set istop = 1 where id="&num Next ﻩﻩReturnOK(”操作成功\") ﻩElse ﻩ ReturnError(\"超作错误 请选择要置顶的记录!\") ﻩEnd If End Sub Sub Noistop() ﻩDim id,num id = Request(”id”) If id<>"” Then ﻩﻩFor Each num In Request(\"id\") Conn.Execute ”update [message] Set istop = 0 where id=”&num Next ﻩﻩReturnOK(”操作成功”) Else ﻩ ReturnError(\"超作错误 请选择要置顶的记录!") End If End Sub Sub noaud() ﻩDim id,num ﻩid = Request(”id”) If id〈〉”\" Then ﻩFor Each num In Request(”id\") ﻩﻩConn.Execute \"update [message] Set Auditing = 0 where id=\"&num Next ReturnOK(”操作成功”) Else ﻩ ReturnError(\"超作错误 请选择要审核的记录!”) ﻩEnd If End Sub%> 3.3.3参数设置模块 -- -- 图3.5 留言管理设置页面图 图3。6 参数设置版面 如图3。6所示,此模块为整个系统的基本界面和显示界面的基本设置。提供了4个基 本设置功能分别为:如下4个。 1. 2. 3. 4. 系统设置:包括了,开启系统 ,开启留言 ,开启注册,开启公告,留言审核 ,开启回复 ,显示回复等功能。 参数设置:包括了,每页显示记录数, 数字分页前后多少条, 显示回复数量等功能. 积分设置:包括了,注册奖励积分: 发布留言奖励: 回复留言奖励: 支持奖励: 被支持奖励: 反对奖励积: 被反对奖励 :等参数设置。 后台设置:提供每页显示多少条的设置。 主要实现代码如下: 〈!——留言变量设置-基本变量设置页面代码-—> 〈%Action = LCase(Request("action”))ﻩ'得到action值 Select Case Trim(Action) ’调用过程 Case \"edit" ﻩCall Edit() Case Else ﻩCall Show() End Select Sub Show() Set Rs = Conn.Execute(”Select parameters From [Config]") ﻩDim para para = Split(Trim(Rs(0)),\"/”) %〉 ﻩ ………………………………部分代码省略…………………………………………. -- -- ﻩ<% ﻩRs。Close ﻩSet Rs = Nothing End Sub Sub Edit() ﻩDim paras For i = 0 To 17 ﻩ paras = paras & Chknum(Request.Form(\"para”&i&”\"))&"/" ﻩNext ’res(paras) ﻩSet Rs = Server.CreateObject(\"Adodb。Recordset”) Sql=\"Select * From Config \" Rs.Open Sql,Conn,1,3,1 ﻩRs("parameters") = paras ﻩRs。Update ﻩﻩReturnOk(\"系统设置成功!\") Rs.Close:Set Rs=Nothing End Sub Call Bottom()%〉
ﻩResponse.Write(\"<textarea name='Content' cols="\"60\"\" rows=\""8”\"〉</textarea>”)&vbcrlfﻩResponse。Write "管理员登陆 ” & vbCrLf验证码:</td>\" & vbCrLf Response。Write \" <td〉<input type=\""text”\" size=""9\"” maxlength=""6"\" name=””code”\" /> " & vbCrLf &nbsp;</td>” & vbCrLf Response.Write \"〈/tr>\" & vbCrLf Response.Write \" 〈tr〉" & vbCrLf
ﻩCall Show() End Select
Sub Show()
Set Rs = Conn.Execute("Select parameters From [Config]\") ﻩDim para
para = Split(Trim(Rs(0)),\"/\") ﻩ%> ﻩ
………………………………部分代码省略………………………………………ﻩ ﻩﻩ </td〉 ﻩRs。Close
Set Rs = Nothing End Sub
Sub Edit() ﻩDim paras
--
--
For i = 0 To 17
ﻩparas = paras & Chknum(Request.Form(\"para"&i&\"\"))&\"/\" Next
'res(paras)
Set Rs = Server。CreateObject("Adodb.Recordset\") ﻩSql=”Select * From Config ” ﻩRs.Open Sql,Conn,1,3,1
Rs(\"parameters\") = paras ﻩRs.Update
ReturnOk(\"系统设置成功!") ﻩRs.Close:Set Rs=Nothing End Sub
Call Bottom()%〉〈%
If Request.QueryString("action”)=\"setup\" then call setup() Else
ﻩIf Session(”id”)<〉”” Then
Set rs = server.createobject("ADODB.RecordSet\")
ﻩrs.Open \"Select * from note_Admin where id=”&Session(\"id”),conn,1,3
%〉 〈%
Sub setup()
ﻩif request(\"save\")=”ok" then ﻩﻩ '保存设置 '创建RecordSet 对象
Set NArs=Server。CreateObject("ADODB.Recordset\")
ﻩﻩ’从数据库note_admin中查询id 列的值为Session(”id\") 的记录,并保存在NArs 中
ﻩ NArs。open ”select * from note_admin where id=\"&Session("id"),conn,1,3ﻩ
'创建RecordSet 对象
Set WBrs = Server.CreateObject(”ADODB.RecordSet")ﻩ ﻩﻩ'从数据库web 中查询所有记录,并保存在WBrs 中
ﻩﻩWBrs。Open ”Select * from web",conn,1,3
ﻩﻩ'资料填写不完整
ﻩ if trim(request。form("sitename"))=”” or trim(request.form(\"admin”))=\"” or trim(request。form(”maxlength\"))=”" or trim(request。form(\"counts"))=”” or trim(request。form(\"replycolor”))=”” or trim(request.form("isreply”))=”\" or trim(request。form("distance"))=”” then
ﻩﻩﻩ’给出提示,并返回到前一页
--
--
ﻩ response。write "〈script>alert('资料填写不完整或有错误,请检查后重新提交。');history.back();〈/script〉"
response.end end if
'输入的留言主题最大长度、留言内容最大长度、每页留言数和表格间距不是数字
ﻩ if (not isNumeric(request.form(”subjectmaxlength\"))) or (not isNumeric(request.form("maxlength”))) or (not isNumeric(request.form(”counts”))) or (not isNumeric(request.form(\"distance”))) then
'给出提示,并返回到前一页
ﻩ response.write ”