网上贴吧系统毕业设计论文_第1页
网上贴吧系统毕业设计论文_第2页
网上贴吧系统毕业设计论文_第3页
网上贴吧系统毕业设计论文_第4页
网上贴吧系统毕业设计论文_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网上贴吧系统目 录摘 要2第一章引 言2第二章、asp技术综述32.1 asp的产生32.2 asp与iis42.2.1 iis简介42.2.2 iis与asp的结合42.3 asp的内部特点 2.3.1 asp内部6大对象52.3.2 global 文件62.4 利用ado访问数据库62.5 asp与cgi的比较8第三章、网上贴吧系统分析及实现93.1网上贴吧系统说明93.1.1分析需求,确定思路103.1.2 设计功能113.1.3划分功能模块123.2数据库设计143.2.1数据

2、库概念结构设计14各表之间的联系153.2.2数据库逻辑结构设计163.2.3连接数据库203.3主要界面及相关代码分析223.3.1 用户登陆223.3.2用户注册253.3.3版面模块353.3.4帖子模块383.3.5管理人员模块44第四章、网上贴吧系统运行环境44第五章、结论45第六章、致 谢45第七章、参考文献45摘 要20世纪末,随着计算机科学的发展,数据库技术在internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今web应用的潮流。本文研究了一种基于数据关联规则网上贴吧系统,贴吧也称为bbs,bbs是bulletin board sy

3、stem的缩写,意即电子公告板,一种在internet上常用的用于信息服务的web系统,他的主要服务是用来帮助浏览者相互沟通,吸引用户、服务用户的。bbs起源于20世纪80年代初。最初只是用于公布公告信息和讨论问题的在线交流平台;后来随着网络的普及,贴吧的功能越来越丰富。受到广大网民的欢迎。因此商业网站对贴吧重视起来,纷纷在自己的网站上开辟贴吧,作为与网民交流的园地,同时在线技术和在线服务也在贴吧开展起来。本文中所做的主要工作如下: (1)介绍了个性化页面的背景及win2000+iis+asp系统的一般原理;(2)阐述整个个性化页面的系统结构及工作原理;分析了系统实现中的特殊性、难点和重点。(

4、3)设计实现用户管理、帖子管理、版面管理、数据库管理、浏览和查找、短消息功能等asp页面 。(4)分析并解决实现中的若干技术问题。(5)建立完整的网上贴吧,进行测试并分析结果。【关键词】网上贴吧、asp、access第一章、引 言internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为internet上一种先进的,易于被人们所接受的信息检索手段,world wide web(简称www)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前internet上已有上百万个web站点,其内容范围跨越了教

5、育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的web站点对于一个机构的发展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在internet中的广泛应用,web站点向用户提供的服务将越来越丰富,越来越人性化。我们发现这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感性趣,而且这种兴趣会持续一段时间。这点启发了我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。一些站点已经在这方面作出了一定的

6、尝试,通常采用的方法是,在用户登陆时为其提供一系列的选项,使用户能够对站点进行一些自主的设置。这样做能够使站点呈现一定程度的个性化,但是对用户来讲,还是比较烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。于是我们构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击的规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便在无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。要实现这样的功能,离不开后台数据库的支持。用户验证信息,收集到的用户点击信息,主

7、题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了microsoft access数据库作为odbc(open database connectivity )数据源,并以先进的ado(activex data objects)技术进行数据库存取等操作,使web与数据库紧密联系起来。整个个性化页面生成系统主要由使用dreamweaver_mx开发的关联规则采掘系统和利用iis+asp技术实现的个性化web页面生成器两部分组成。关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表;页

8、面生成器则负责记录用户行为和根据关联规则表动态生成用户个性化web页面。二者通过数据库服务器和web服务器连接。本文作者主要完成web服务器端的用户管理、帖子管理、版面管理、数据库管理、浏览和查找、短消息功能等设计、实现与完善以及整个实验网站的组织建立和测试工作。第二章、asp技术综述2.1 asp的产生近年来随着internet技术的飞速发展及用户需求的不断升级,web页面技术也不断的推陈出新,使得web站点的功能越来越强大,能够提供的服务种类越来越繁多。从html、client script 到cgi,从java的诞生到activex, web页面设

9、计人员不断受到冲击,微软公司在总结了以往技术,重新思考web页面设计的真正需要后,推出了active server pages (asp),一种用以取代cgi(common gateway interface,通用网关接口)的技术。简单讲,asp是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 web 服务器应用程序,如交互式的动态网页,包括使用 html 表单收集和处理信息,上传与下载等等。更重要的是,asp使用的activex技术基于开放设计环境,用户可以自己定义和制作组件加

10、入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的web编写工具所远远不及的地方。使用asp还有个好处,就在于asp可利用ado(active data object,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于www的应用系统成为可能,这也是本文选择asp作为开发工具最重要的原因之一。2.2 asp与iis2.2.1 iis简介web服务器是web应用程序的心脏。iis(internet information server)是微软推出的windows nt option 

11、pack的主要成员,作为win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的web服务器之一。新推出的iis4.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置java虚拟机及全面支持asp等强大功能。2.2.2 iis与asp的结合在过去,客户机/服务器结构的设计与web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用iis+asp构成三层式web结构(如图2.1所示)的中间一层,将客户机/服务器结构与web密切结合,完成前后端两者的集成输出功能,使得web站点的开发更方便,实

12、现的功能更强大。利用iis+asp技术来集成web前后端所带来的强大效益可归结为以下几个方面:1 减少构建和维护成本2 加快联机过程3 应用软件集中在服务器端开发管理4 前端可使用任何5 后端可存取任何数据库 (sql、access.)6 可使用任何脚本语开发 (vbscript、javascript、perl.)浏览器(ie、netscape.)2.3 asp的内部特点2.3.1 asp内部6大对象asp提供了6个功能强大的内部对象,每个对象具有各自的属性(property)、方法(method),有的还拥有数据集合(collection)与事件(ev

13、ent),它们共同完成web中的一些重要工作。这6个对象及其功能描述如表2.1所示。表2.1  asp 内部6大对象及其功能对象名称功能描述request从客户端取得信息response将信息送给客户端server提供一些web服务器工具session储存在一个session内的用户信息,该信息仅可被该用户访问application在一个asp-application中让不同的客户端共享信息objectcontext配合microsoft transaction服务器进行分布式事务处理合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。我们可

14、以用以下的语法直接使用这些对象:对象/属性/方法/数据集合2.3.2 global 文件每一个以active server pages为基础的应用程序都拥有一个global.asa文件(asa后缀名其实是active server application的缩写),它位于每一个应用程序的基点目录之下。当active server pages做下面两个动作时,server便会去读global.asa文件:1.web server启动之后,一个应用程序目录中任一个asp文件被提出第一个http请求(reques

15、t)时。2.不具有任何session的客户端向server请求一个asp文件时。前面已经提到application和session这两个asp的内部对象。application对象内的信息供所有正在执行该应用程序的用户分享,它创建于web server启动后一个应用程序中任一asp文件被提出第一个http请求时,结束于server端停止运行。而session对象仅属于一位用户,维持一个用户端的信息,其他用户无法访问,它创建于一个不具有session的用户向server请求一个asp文件时,结束于该session到期(即用户端超过某时间段没有向server提出要求或刷新web页面)或a

16、bandon语句的调用。可见,global.asa文件的调用与application与session这两个对象密切相关。事实上我们通常在global。asa文件中写入以下内容:1 application或session的开始事件(start-event)。2 application或session的结束事件 (end-event)。这样,在一个application或session对象被创建或结束时,系统会自动完成global.asa文件中写入的相应事件。值得注意的是,如果一个application与一个session同时开始,active server page

17、s会先处理application的开始事件,而如果一个application与一个session同时结束,active server pages则会先处理session的结束事件。2.4 利用ado访问数据库ado(activex data objects)是一种操作microsoft所支持的数据库的新技术。在asp中,ado可以看作是一个服务器组件(server component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ado技术。具体的操作步骤可以

18、归纳为以下几步:1创建数据库源名(dsn)2创建数据库链接(connection)3创建数据对象4操作数据库5关闭数据对象和链接每一步的作法如下:一、创建数据源名dsn(date source name)即数据源名称。我们知道,odbc是一种访问数据库的方法,只要系统中有相应的odbc驱动程序,任何程序就可以通过odbc操纵驱动程序的数据库。比如我们系统中有access的odbc驱动程序,那么即使我们没有access软件,也可以在我们的程序中对一个access的mdb数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出sql语句,odbc驱动程序就

19、会帮我们做一切事情。我们在给odbc驱动程序传sql指令时,即是用dsn来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了sql server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置dsn就行了。由此可见,dsn是应用程序和数据库之间的桥梁。二、创建数据库链接(connection)链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。asp文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:set conn=server.createobject(“adodb.connection”)这条语句

20、创建了链接对象conn,接下来:connstr="driver=microsoft access driver (*.mdb);dbq=" & server.mappath(db)conn.open connstr这条语句打开链接,用到了dsn,本例为“connstr”。以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。三、创建数据对象(record set)ado中的数据对象通常保存的是查询结果。record set是ado中最复杂的对象,有许多属性和方法。record set保存的是一行行的

21、记录,并标有一个当前记录。以下是创建方法:set record set=conn.execute(sqtstr)这条语句创建并打开了对象record set,其中conn是先前创建的链接对象,sqtstr是一个字串,代表一条标准的sql语句。例如:sqtstr=“select * from shop_books”set record set=conn.execute(sqtstr)这条语句执行后,对象record set中就保存了表tab1中的所有记录。四、操作数据库我们通过调用链接对象的execute方

22、法来将查询结果返回给一个数据对象或进行插入、删除、修改等操作。例如:sqtstr =“insert into tab1 values(1,2)”conn.execute(sqtstr)/执行插入操作sqtstr =“delete from tab1 where a=b”/执行删除操作sqtstr =“update tab set a=b,c=d”/执行修改操作五、关闭数据对象和链接对象在使用了ado对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。record 

23、set.closeset record set=nothing/关闭创建的数据对象conn.closeset conn=nothing/关闭创建的链接对象2.5 asp与cgi的比较cgi(common gateway interface,通用网关接口)也是internet上一种功能强大的web页面技术,其工作方式有别于asp。我们现对二者进行比较。active server pages开发web应用程序的特点:1 完全嵌入html,与html、script语言完美结合。2 无须手动编译和链接程序。3 面向对象,并

24、可扩展activex server组件功能。4 使用脚本语言(javascript、vbscript或perl)编写。5 存取数据库轻松容易(使用ado组件)。6 可使用任何语言编写自己的activex server组件。7 无浏览器兼容问题。8 程序代码隐藏,客户端仅能看到asp输出的html文件。9 缩短web开发时间。相比之下,使用cgi开发web应用程序具有以下缺点:1 不易与html文件集成。2 须使用其他较复杂的语言来开发cgi程序。3 程序开发时间较长。4 存取数据库不容易。5 每个cgi程序被不同用户执行时都得重新执行一次,并占去server的一个端口(po

25、rt),降低server效率。可见,asp在数据库访问、与html的集成、提高服务器的效率等诸多方面都优于cgi,更适应web应用程序开发的需要,因此本文选择了asp作为个性化页面生成器的开发工具。第三章、网上贴吧系统分析及实现3.1网上贴吧系统说明在开始制作之前,要明确贴吧能做些什么事情,,也就是所谓的需求。所以必须把需求做清楚,然后才能进行设计。其实在贴吧里大家最熟悉的就是用户浏览贴吧已有的内容,针对别人的主题展开讨论,也可以发表自己的观点供大家品评。同时为了防止用户发布一些不健康不合法的内容需要有管理人员来对这些内容进行删除修改,在扩展一点,若用户想在贴吧发布信息,不允许他再来发布非法内

26、容。这样需要管理员对用户和贴吧的内容都要进行管理。我们要做一个多版面的贴吧。在这里用户可以注册,浏览贴吧版面和帖子,发布自己的帖子,也可以相互联系。管理人员可以设置贴吧的系统参数,管理注册用户和版面。当用户来到贴吧可以看到版面列表。通过版面可以看到相关的帖子。如果需要进一步的功能,就需要用户注册。用户注册以后,可以发表自己的帖子或者回复别人的主题,也可以修改自己的帖子,如果发帖数量很多,会给用户一定的积分。用户也可以升级为版主,可以删除别人的帖子,将帖子置顶,设为精华等。用户还可以修改自己的信息,查看其他用户公开的注册信息。管理人员可以管理版面、帖子、用户、设置系统参数。3.1.1分析需求,确

27、定思路浏览者注册登录浏览板块浏览帖子回复用户发帖管理用户管理帖子搜索管理员管理版块首先来做名词分析。大家可能觉得奇怪,这不是阅读理解,为什么要做这个?分析需求就是要理解需求,得出重点。首先要做的就是找出这个贴吧要针对哪些进行操作,对需求中的名词进行一次筛选,得出一个简洁的列表。下边这个表是表示各个对象间关联的,关联是单向的,是指左侧对象对上方对象的活动。没有关联我们就用x,如果两者只有单向关联,那么另一个对象反关联时我们用对号表示。根据需求,得出各个对象间的关联表。如表3.1所示表3.1个对象间的关联表用户版面帖子管理人员系统参数用户注册】修改浏览联系浏览浏览发布修改删除特殊操作x版面xxx帖

28、子xxx管理人员删除授权添加删除修改添加删除修改x设置系统参数xxx3.1.2 设计功能有了表3.1就可以进行十实质性的工作了。现在就来设计功能。首先从用户开始,在表3.1中用户关联的对象是自身,版面,帖子,分别根据用户与这些对象的联系给出一个明确的菜单,见表3.2表3.2用户功能列表序号功能名称说明1用户注册用户在贴吧填写必要的信息后就可以注册成为注册用户,用户登录网站可以修改自己的用户信息2用户登录用户在贴吧注册后,可以使用用户名密码在贴吧登录3浏览其他用户信息用户注册后可以查看其他用户信息4浏览版面用户可以看到以列表形class.asp式展现的版面信息5浏览帖子用户可以以列表形式浏览帖子

29、主题及帖子的全部内容6发布删除修改帖子用户在登录后可以发布帖子,修改自己的帖子。如果被赋予版主权限还可以修改其他用户的帖子7与其他用户联系在用户注册时要求用户填写电子邮件地址,那么其他用户可以利用电子邮件与其联系8对帖子特殊操作接下来的版面,帖子都没有和其他对象的关联,他们在贴吧属于被动的对象,是被其他对象所操作的。因此针对他们的功能主要是由其他对象产生,例如浏览版面就属于用户的功能。管理人员是贴吧的一个特殊群体,他们的主要工作的是保证贴吧的正常运转,他们可以和所有对象产生联系,因此他们的功能也很丰富。表3.3列出了管理人员的功能。表3.3管理人员功能列表序号功能名称说明1用户删除对于在贴吧发

30、表一些非法言论。给贴吧造成很坏的影响的用户应该删除他们的身份,不允许他们的存在2用户授权贴吧的管理是纷繁复杂的,需要很多的知识需要给一些具有能力用户一些特殊权限让他们帮助管理人员完成对贴吧的维护。3版面管理版面是贴吧的枝干,对于新的只是需要添加新的版面有些版面的内容可能不太适合了可以考虑修改,对于没有存在意义的版面就要删除了。4帖子的管理帖子是一个贴吧的叶子,他们的内容如何,反应了贴吧使用者和管理这的水平,需要管理人员对帖子的全权管理,以保证贴吧内容的水平。、5设置系统参数系统参数包含的内容很多他们直接关系到贴吧的正常运行。现在系统功能部分已经分析完了,接下来需要对这些功能进行分类,同时根据功

31、能给出详细的数据库设计。3.1.3划分功能模块一般初学程序设计的人,即掌握了某种程序设计语言的语法,按照教材做过简单实例的人,在遇到现实生活的应用系统时,他的分析思路是从计算机实现的角度来考虑问题,而不是从系统的使用者的角度考虑问题,这就制约了他的思路一个系统是给人用的,开发者需要考虑用户使用起来是否方便,而不是及其实现起来是否方便。模块的划分主要是按每一个对象操作来归类。贴吧操作的对象是上面所归纳的5个,下面就针对这5个对象划分功能模块。用户:应该有两个模块,一个是用户注册、登录、修改信息等功能组合,是用户对用户的操作;另一个是管理人员对用户进行删除,授权,是管理人员对用户的操作。这两个模块

32、功能列表如3.4所示表3.4用户功能模块列表模块模块包含的功能用户模块用户注册用户登录浏览其他用户信息与其他用户联系用户控制自己的信息用户登录添加验证码管理人员模块用户删除用户授权版面:也有两个模块,一个是浏览模块,一个是管理模块,其功能模块列表如表3.5所示表3.5版面功能模块列表模块模块包含的功能版面浏览模块浏览版面版面管理模块版面管理帖子:帖子的功能是最多的,也是最复杂的,但是仍把它分为两大模块。根据操作对象来区分,有很多功能是重复的,但是由于操对象不同仍然需要列出。其功能如表3.6所示表3.6帖子功能模块模块模块包含的功能帖子模块浏览帖子发布、修改、删除帖子对帖子的特殊操作帖子收藏帖子

33、搜索帖子管理模块帖子管理管理人员:管理人员主要是对其它对象进行操作,针对他的模块就没有了。但是这里很多模块的操作人员是他,同时把系统参数设置的功能也划分出来。其功能列表如表3.7所示。表3.7管理人员管理功能模块模块模块包含的功能管理人员管理模块设置系统参数数据备份非法言论过滤非法ip限制这样贴吧的模块划分就完成了。从以上分析可以了解到模块划分的依据,就是功能的使用者。从表可以的到贴吧的功能框架,即系统的各个部分已经确定,知道贴吧是什么样的,但是要把贴吧系统完整的构架出来,还需要进一步思考模块间的关系。3.8贴吧整体架构图注册登录用户管理用户选择板块浏览帖子发帖回帖管理板块管理帖子搜索管理员3

34、.2数据库设计贴吧系统信息的存储一般是在文件或者数据库中,在这里选择数据库,用数据库要简单高效一些,能够对贴吧进行更好的控制。使用数据库的第一步就是涉及数据库的表结构,一个良好的数据库表结构,可以提高效率,方便维护,并且以后进行功能的扩充留有余地,就好比高楼大厦的地基一样,有了稳固的基础,才能有优秀的成果。 下面来设计贴吧的数据库。3.2.1数据库概念结构设计首先给出贴吧使用的数据表如表3.9所示表3.9贴吧数据表序号表名说明1qiqiboy_admin_disp管理员信息表2qiqiboy_board_disp贴吧列表3qiqiboy_class_disp二级版面信息表4qiqiboy_nl

35、ass_disp一级版面信息表5qiqiboy_status_disp贴吧状态表6qiqiboy_system_disp系统信息表7qiqiboy_topic_disp主题,帖子信息表8qiqiboy_user_disp用户信息表各表之间的联系用户用户名.用户密码邮箱地址主题主题名.主题内容主题状态主题发表人帖子帖子编号帖子所属版面帖子内容帖子状态版面版面名称上级版面号版面编号版主3.2.2数据库逻辑结构设计数据库概念结构设计完毕就可以通过数据库软件转化为实际的数据模型,即数据库的逻辑设计。本系统采用的数据库软件是microsoft access.1. 用户信息表(qiqiboy_user_d

36、isp)序号字段名字段类型说明备注1userid自动编号用户编号主键2username文本用户帐号3pwd文本用户密码4sex数字用户性别5email文本用户邮箱6oicq文本用户qq7question文本找回密码提示问题8answer文本提示答案9usergroupid数字用户类别10ip文本用户ip11regtime日期/时间用户注册时间12lastlogin日期/时间用户最后登录时间13visits数字用户访问次数14lockuser数字是否锁定15integral数字用户积分16topics数字用户发表主题数17replys数字用户回复帖子数18area文本用户地址19websites

37、文本用户主页20list备注用户简介21photo文本用户头像在用户信息表里保存的是所有在贴吧注册的用户的信息,用户编号是用户在贴吧的唯一标识,是不重复的,同时用户名在贴吧中也是不能重复的,大家可能奇怪既然用户名也不可以重复,为什么不用用户名作为用户在贴吧中的唯一标识呢?大家可以考虑一下,假如你有一份一百个人的名单,每个人有一个序号,这是让你从中找一个人,如果只告诉你名字,那么找起来会很麻烦,如果告诉你他是多少号是不是要简单的多?同样道计算机对数字的检索更加快速,特别是用用户很所的时候。用户名和密码是不能为空的,这是因为当用户名登录时必须输入用户名和密码我们才能定位到用户的信息,验证用户是不是

38、真正在贴吧注册了,电子邮件不能为空的目的是为了是其他用户能够很方便的和该用户联系,同时又可以作为用户忘记密码是取回密码的联系方式。密码问题和密码答案的主要应用是。当用户忘记密码时,由系统提问,如果用户能够准确的给出密码答案我们将提示给用户密码。2.管理员信息表(qiqiboy_admin_disp)序号字段名字段类型说明备注1id自动编号管理员id主键2uid文本管理员姓名3pwd文本管理员密码4groups文本管理员类别5loginip文本管理员登录ip6updatetime日期/时间管理员最后登录时间7loginnum数字管理员登录次数3.二级版面信息表(qiqiboy_class_dis

39、p)序号字段名字段类型说明备注1boardclass自动编号二级版面编号主键2boardclassname文本二级版面名字3boardnlass数字上级版面4.贴吧状态表(qiqiboy_status_disp)序号字段名字段类型说明备注1statusid自动编号状态信息id主键2regusers数字注册用户数3totalboards数字版面数4totaltopics数字主题数5totalreplys数字回复主题数5.版面信息表2(qiqiboy_class_disp)序号字段名字段类型说明备注1boardnlass自动编号一级版面id主键2boardnlassname文本版面名称版面列表(q

40、iqiboy_board_disp)序号字段名字段类型说明备注1boardid数字版面id主键2boardnlass数字二级版面编号3boardclass数字一级版面编号4boardname文本版面名称5boarddescription文本版面描述6boardmaster文本版主7lastmodify日期/时间最后修改时间8boardtopics数字版面主题数9boardreplys数字版面回复数6.系统信息表(qiqiboy_system_disp)序号字段名字段类型说明备注1systemid自动编号系统信息编号主键2systemname文本网站名称3systemlist文本网站介绍4sys

41、temurl文本网站地址5systemlogo文本网站logo6systemuser网站站长7systememailr文本邮件地址8systemqq文本qq号码9systemreg备注注册提示信息10systemhelp备注网站帮助指南11systempic备注12systemfilter备注过滤字符13systemmeun备注首页导航菜单14systemfont文本字体颜色15systemrefresh数字开启/关闭防刷新功能16systemrefreshtime数字防刷新间隔时间17systemoff数字网站开启/关闭18systemvip数字会员发表/回复帖子19systemubb数字u

42、bb编辑功能20systemup数字图片上传功能21systemmailaddress文本在线发送邮箱地址22systemsmtpaddress文本发送邮箱smtp地址23systemmailname文本发送邮箱登陆帐号24systemmailpass文本发送邮箱登陆密码25systemcopytxt文本26systemcode数字27systememnum数字帖子表情允许数目这是个核心表,但是他的每个字段都很简单,贴吧设置字段存储了贴吧名称,贴吧地址,贴吧联系方式,过滤词这个字段很重要。他的内容是不允许发布在贴吧上的当用户发布题写非法言论是,可以通过这个字段检查出来。7.主题,帖子信息表(q

43、iqiboy_topic_disp)序号字段名字段类型说明备注1topicid自动编号主题id主键2parentid数字父文章id3rootid数字主题号4boardnlass数字一级版面号5boardclass数字二级版面号6username文本发表主题者7lastpost文本最后发帖者8title文本主题类型9content备注主题内容10img文本主题图片内容11dateandtime日期/时间发表主题时间12updatetime日期/时间最后发帖时间13reads数字阅读次数14replys数字回复次数15status数字主题状态16topicip文本发表主题者的ip17replyip

44、文本回复者的ip18favorite备注收藏该主题3.2.3连接数据库在整个系统开发的过程中,数据库连接是必不可少的,是公用的,我们可以把这一部分先拿出来,单独做成一个页面,在需要的时候只需要调用这个页面就可以了,而不用每次都去写连接数据库的程序,这个做法叫做复用,是在程序开发中经常用到的。 首先要建立同数据源的连接,我们利用ado的connection来建立同数据库的连接。建立asodb.connection对象,使用此对象的open方法打开数据库。现在来看代码如程序3.01所示:数据库连接程序(conn.asp)<%1. .on error resume next2. dim con

45、n,connstr,db3. db="data/data.mdb" 4. set conn = server.createobject("adodb.connection")5. connstr="driver=microsoft access driver (*.mdb);dbq=" & server.mappath(db)6. conn.open connstr7. if err then8. err clear9. response.write "<font size=""4"

46、;">·数据库连接错误.</font>"10. response.end11. end if12. function closedatabase13. conn.close14. set conn = nothing15. end function%> 第一行是容错语句,发生错误后,继续执行下一句,接下来就用dim声明了变量 rs,sql,conn,connstr,db,connstr这个变量是用来存储连接数据库的信息的,变量db声明了数据库文件所在的路径。 第五行,为connstr赋值。这是很关键的一步,这里声明的是ole db 连接数据

47、库的方式,只看data sourse部分,他后面跟的是数据库文件的路径。server.mappath函数是asp内置的server对象的一个函数,用来获取五网站目录下文件的绝对路径。 在79行写了一个判断错误的信息,如果连接数据库错误,系统会给出一个错误,这时候通过asp的err对象判断错误的存在,首先将错误信息从内存清除,然后将conn对象从内存中清除。 3.3主要界面及相关代码分析 数据库连接完了,接下来要做的就是实际模块程序的编写了。首先要写的是用户模块,用户模块包含7个功能,其中有些功能是相辅相成的。现在就一步步地实现本模块的功能。3.3.1 用户登陆我们已经有了用户信息表,其中的用户

48、名和用户密码字段是用来验证用户身份的,有了这两个字段,我们就可以很容易地写出验证用户登陆的程序了。首先来看用户登陆的界面,如图所示。我们将这个页面命名为login.asp,先看页面的内容。“用户帐号”和“用户密码”这两项就是用来读取用户名和密码的地方。接下来是一个cookie选项,cookie是用来保存用户信息的一种方式,系统登录页面所涉及的html表单元素如表2所示:表2系统登录页面所涉及的html表单元素名称类型含义重要属性formform表单action=" loginfox.asp" method="post"usernametext用户帐号on

49、focus="this.select(); " onmouseover="this.style.background='#eaeaea'" onmouseout="this.style.background='#ffffff'"passwordpassword用户密码onfocus="this.select(); " onmouseover="this.style.background='#eaeaea'" onmouseout="thi

50、s.style.background='#ffffff'"verifycodetext验证码onfocus="this.select(); " onmouseover="this.style.background='#eaeaea'" onmouseout="this.style.background='#ffffff'" size="6" maxlength="4"autologincheckboxcookiestype="c

51、heckbox" id="autologin" value="true"submitsubmit【我要登录】按钮class="input" value=" 我要登 录 "submit2reset【擦除重填】按钮value=" 擦除重 填 " class="input" 验证用户身份程序(loginfox.asp)<%dim username,password,verifycode username=replace(trim(request.form("

52、;username"),"'","")password=replace(trim(request.form("password"),"'","")verifycode=replace(trim(request.form("verifycode"),"'","")if username="" thenresponse.write ("<script>alert(&

53、#39;友情提示!nn用户帐号不能为空!');history.back();</script>")response.endend ifif password="" thenresponse.write ("<script>alert('友情提示!nn用户密码不能为空!');history.back();</script>")response.endend ifif host_code=0 thenif verifycode="" thenresponse.write

54、 ("<script>alert('友情提示!nn验证编码不能为空!');history.back();</script>")response.endend ifif verifycode <> trim(session("verifycode") thenresponse.write ("<script>alert('友情提示!nn验证编码错误!');history.back();</script>")response.endend ifen

55、d ifip = request.servervariables("http_x_forwarded_for") if ip = "" then ip = request.servervariables("remote_addr")sql="select * from qiqiboy_user_disp where lockuser=0 and username='"&showstring(username)&"'"set rs=conn.execute(sql)

56、f rs.eof and rs.bof thenresponse.write ("<script>alert('友情提示!nn用户帐号错误或已被锁定!');history.back();</script>")response.endelseif rs("pwd")<>md5(password) thenresponse.write ("<script>alert('友情提示!nn用户密码错误!');history.back();</script>&quo

57、t;)response.endelseresponse.cookies("username")=usernameresponse.cookies("pwd")=md5(password)response.cookies("automember")=usernameresponse.cookies("automember").expires=now()+365if lcase(request.form("autologin")="true" thenresponse.cookies("username").expires=now()+365response.cookies("pwd").expires=now()+365end ifsql="update qiqiboy_use

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论