校友联谊网站毕业设计论文.doc_第1页
校友联谊网站毕业设计论文.doc_第2页
校友联谊网站毕业设计论文.doc_第3页
校友联谊网站毕业设计论文.doc_第4页
校友联谊网站毕业设计论文.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第一章 前言1.1开发背景随着近年因特网(internet)技术的飞速发展,万维网(world wide web简称web)融会了越来越多的信息。万维网提供了一个可以轻松驾驭的图形化用户界面,用户通过它可以轻松连接因特网所覆盖的一个庞大的信息网络。基于此,诞生了“网站”这样一种的新兴媒体,它已经成为一个实时的,多媒体的信息传播渠道。网站的载体主要是计算机,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们已经把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过internet网络获取信息,通过internet在网站上发表自己对社会对生活的理解和建议。为了适应信息技术和网络化、一体化的发展,学校也有了相应的需求建立自己的网站,用以存储数据和人事管理以及给校内人员提供一个方便快捷的交流平台。为了达到这些目的,学校需要建立一个基于bbs(bulletin board system,电子公告板)的网站“校友联谊网站”,让用户既能够进行交流和联系其他用户,还可以在允许的权限范围内发布和查询相应的信息。作为bbs,它应该是一种交互性极强的、网友喜闻乐见的电子信息服务系统,能够提供一块公共电子白板,每个用户都可以在上面书写,发布各自的信息或提出不同的看法,以便于其他用户进行交流讨论;作为学校网站,它又必须能够体现出校园内部网站的特点,能够实现校园新闻发布等功能。基于这样的考虑,本系统开发的校友联谊网站应具有的最基本模块有用户模块、公共信息模块、讨论区模块、密码重建模块及后台管理模块等。其中:(1)用户模块主要包括用户注册、登录登出及个人信息管理等;(2)公共信息模块主要实现用户公共信息的发布及查询;(3)讨论区模块主要显示讨论区内容和文章内容,同时用户可以发表文章和回复相应文章;(4)密码重建模块主要实现用户丢失密码后的密码重建;(5)后台管理模块主要实现管理员对整个网站的管理功能,包括对讨论区创建、修改和删除,对公共信息、讨论区文章的管理,新闻公告的发布、删除,以及对用户的个人资料修改和删除等。“校友联谊网站系统”采用了linux+apache+mysql+php开发,选择在linux操作系统中使用目前比较流行的apache服务器结合mysql数据库使用php语言进行web设计,充分发挥linux下php与mysql结合的优势。1.2项目提出的意义校友联谊网站,是一种为用户提供网上信息交流、相互联络的网络工具,通过网络实现了校友之间的远程交互以及信息资源的共享。校友联谊网站为校友之间进行交流和联系提供了一个平台。利用网络资源优势和技术优势,通过提供完善的信息发布查询服务和规范的用户管理,以达到增进校友之间、校友与母校之间的感情,方便校友联系的目的,并以此加快学校的信息化建设。同时通过本网站用户可以方便的、有针对性的与同学进行交流,了解班级同学的信息、动向。用户也可以发布信息或文章,实现资源共享。它为在校学生、毕业生提供了一个多元化的交流平台,既可以通过它寻找同学,也可以利用它实现在线交流,同时,它还可以承担一部分网络教学的任务,弥补学生在网络学习中交流方面的不足,和同学间通过讨论形成合作性学习,提高自己的专业学习水平。34第二章 网站开发环境与实现技术2.1 开发和运行环境2.1.1 硬件设备及操作系统服务器:pentiumiii 1g(或与此相当的cpu)以上配置的高性能pc机,有网络接口卡(nic),内存应在256m以上,硬盘在80g以上。确认该计算机已经安装apache服务器,数据库软件mysql,还可选用备份服务器。操作系统:windows nt 或以上 客户端:pentiumiii 500(或与此相当的cpu)以上配置的pc机,有网络接口卡(nic),内存应在256m以上,硬盘在2g以上。网络:服务器和客户端应有网络连通,配置tcp/ip协议以及需要申请一个连接internet的固定ip地址。2.1.2 系统开发平台电脑配置:一般pc,cpu: 酷睿duo t2050,内存:1g,硬盘:80g操作系统:redhat linux fedora core 6.0开发环境:php 5.1.6web服务平台:apache 2.2.2数据库:mysql 5.0.22系统开发平台的web服务器采用apache http server,apache提供http协议的服务,并通过与其他web服务器沟通,相互联结而形成全球信息网。apache成为web服务器主流的原因是由于它拥有的一些特色:(1)结合并支持最新的通信协议,包括http1.1版;(2)可配置的灵活性极高,且能随时加入其他组织开发的模块,增加系统功能;(3)可采用apache模块化的应用程序接口(application program interface,api),并视情况所需自行开发模块;(4)向所有用户开放完整的源代码,用户可依照自己的需求修改程序;(5)充分展示跨平台的优势,在windows 95/98、windows nt/2000、netware 5.x、os/2,还有unix及其衍生的操作系统上皆能执行,其中包括现今呼声很高的linux操作系统。apache在fedora core 6.0中的版本信息可以通过以下命令查看:图1 apache查看信息命令当前显示版本信息为2.2.3-5,这是目前为止fedora 发布的最新版本。apache的启动命令为:service httpd start,停止命令为service httpd stop,重新启动的命令为:service httpd restart。在浏览器中输入linux虚拟主机ip地址即可测试启动是否正常,如:66,默认正常情况下会出现以下界面:图2 apache成功显示页面apache的主要配置文件为/etc/httpd/conf/httpd.conf,下面对本次环境搭建中用需要修改的几个选项作相应说明:# documentroot: the directory out of which you will serve your# documents. by default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.documentroot /var/www/htmldocumentroot用于存放网页数据的根目录,所有来自客户端的请求,都会以此目录中的网页(index.html)来响应,默认的目录为/var/www/html,自行设计网页文件以后应该保存在此目录中;当然此处可以进行修改,根目录修改后,网页文件应保存在修改后的目录中。# directoryindex: sets the file that apache will serve if a directory# is requested.# the index.html.var file (a type-map) is used to deliver content-# negotiated documents. the multiviews option can be used for the # same purpose, but it is much slower.directoryindex index.html index.html.vardirectoryindex选项可用来指定用户连接到每个目录时默认打开的网页名称,系统默认为index.html index.html.var,本机由于首页为index.php 故在后面加上index.php。# specify a default charset for all content served; this enables# interpretation of all content as utf-8 by default. to use the # default browser choice (iso-8859-1), or to allow the meta tags# in html content to override this choice, comment out this# directive:adddefaultcharset utf-8配置文件中默认字符集为utf-8,在此为了使用方便以及对汉字的支持,我们将其注释掉。apache文件中选项在本次毕业设计中修改部分如上所示,其余部分未作修改使用默认值即可。2.2开发工具和关键技术2.2.1 php技术php,是英文超级文本预处理语言(php:hypertext preprocessor)的缩写。php 是一种被广泛应用的开放源代码的html 内嵌式多用途脚本语言。php与微软的asp颇有几分相似,都是一种在服务器端执行的嵌入html文档的脚本语言,语言的风格有类似于c语言,现在被很多的网站编程人员广泛的运用。php 独特的语法混合了 c、java、perl 以及 php 自创新的语法。它可以比 cgi 或者 perl 更快速的执行动态网页。用php做出的动态页面与其他的编程语言相比,php是将程序嵌入到html文档中去执行,执行效率比完全生成html标记的 cgi要高许多;与同样是嵌入html文档的脚本语言javascript相比,php在服务器端执行,充分利用了服务器的性能;php执行引擎还会将用户经常访问的php程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是php高效率的体现之一。php具有非常强大的功能,所有的cgi或者javascript的功能php都能实现。正因为php是这样一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言,它能运行在包括windows、linux等在内的绝大多数操作系统环境中,常与免费的web服务器软件apache和免费数据库软件mysql配合使用于linux平台上。同时php具有强大的数据库支持能力,目前其支持范围覆盖了包括oracle,sybase,microsoft sql,mysql,informix,solid dbase,odbc,unix dbm,postgresql,adabas d等在内的大多数常见数据库。用它编写一个含有数据库功能的网页程序十分简单。php可以编译成具有与许多数据库相连接的函数。php与mysql是绝佳组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当用户更换使用数据库时,可以轻松的更改编码以适应变化。而php5正式版本的发布,标志着一个全新的php时代的到来。它的核心是第二代zend引擎,并引入了对全新的pecl模块的支持。php5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用php5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。在不断更新的同时,php5依然保留对旧有的php4程序可以运行于php5的平台上而不会出现较大问题。随着mysql数据库的发展,php5还绑定了新的mysqli扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。 php5添加了面向对象的pdo模块,提供了另外一种数据库操作的方案,统一数据库操作的api。php5提供了数据库引擎sqlite扩展,直接用这个扩展就可以创建和使用sqlite数据库。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的web项目的执行速度。同时php5.2.0还增加了json函数,更好的支持ajax。本次毕业设计中,在安装linux虚拟机时已经定制了php相关软件包,不需要独立安装php5。可以使用命令查看当前安装版本,当前版本为php-5.1.6-3。如果系统中没有安装php5,则可以使用命令rpm ivh php软件包的全路径名安装php软件包。图3 php查看命令2.2.2 mysql数据库数据库从最初的数据文件简单集合发展到今天的大型数据库管理系统,已成为人们日常生活中不可或缺的组成部分。市面上的数据库产品种类繁多,例如oracle,sql server,mysql,sybase,access等,从大型企业的解决方案到中小型应用系统,可以满足用户的多样化需求。数据库技术从60年代中期至今只有不到40年的历史,但其发展速度之快是其它技术所不及的。它已由第一代的层次型、网状型数据库,第二代的关系型数据库发展到今天以面向对象为主要模型的数据库,即第三代数据库。数据库技术和网络通信技术、面向对象编程技术、并行计算机技术、人工智能技术相互融合、相互渗透,促进了数据库技术的广泛应用。数据库(database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段,使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强。数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。一个真正的、完整的站点是离不开数据库的,因为少量的数据,如网页访问人数等完全可以存储在文本文件中,但实际应用中,需要保存的数据远不止这一点点,而且这些数据之间往往还有关联,利用数据库来管理这些数据,可以很方便的查询和更新。可以说一个动态网站的建设是离不开一个设计最优的数据库的。mysql是瑞典的mysqlab公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。mysql 完全适用于网络,用其建造的数据库可在因特网上的任何地方访问,因此,可以和网络上任何地方的任何人共享数据库。mysql具有功能强、使用简单、管理方便、运行速度快、可靠性高、安全保密性强等优点。mysql用c和c+编写,它可以工作在许多平台(unix,linux,windows)上,提供了针对不同编程语言(c,c+,java等)的api函数;使用核心线程实现多线程,能够很好的支持多cpu;提供事务和非事务的存储机制;快速的基于线程的内存分配系统;mysql采用双重许可,用户可以在gnu许可条款下以免费软件或开放源码软件的方式使用mysql软件,也可以从mysqlab公司获得正式的商业许可。除了以上特点,mysql 还有一个最大的特点,那就是在诸如 unix 这样的操作系统上,它是免费的,可从因特网上下载其服务器和客户机软件。并且还能从因特网上得到许多与其相配的第三方软件或工具。而在 windows 系统上,其客户机程序和客户机程序库是免费的。将 mysql 与其他数据库系统,就性能、支持、特性(与 sql 的一致性、扩展等等)、认证条件和约束条件、价格等进行比较,相比之下,mysql 具有许多吸引人之处,因此本系统选择选用 mysql数据库管理系统实现。1.速度。mysql命令执行的速度很快,是目前运行速度最快的sql语言数据库之一。2.容易使用。mysql 是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低。3.价格。mysql 对多数个人用户来说是免费的。4.小巧。4.1.1的数据库发行版仅仅只有21m,安装完成也仅仅51m。5.支持查询语言。mysql 可以利用 sql(结构化查询语言),sql 是一种所有现代数据库系统都选用的语言。也可以利用支持 odbc(开放式数据库连接)的应用程序,odbc 是 microsoft 开发的一种数据库通信协议。6.性能。许多客户机可同时连接到服务器。mysql数据库没有用户数的限制,多个客户机可同时使用同一个数据库。可利用几个输入查询并查看结果的界面来交互式地访问 mysql。7. 连接性和安全性。mysql 是完全网络化的,其数据库可在因特网上的任何地方访问,因此,可以和任何地方的任何人共享数据库。而且 mysql 还能进行访问控制,可以控制哪些人不能看到用户的数据。8.可移植性。mysql 可运行在各种版本的 unix 以及其他非 unix 的系统(如 windows 和 os/2)上。mysql 可运行在从家用 pc 到高级的服务器上。9.开放式的分发。mysql 容易获得;只要使用 web 浏览器即可。如果不能理解某样东西是如何起作用的,或者对某个算法感到好奇,可以将其源代码取来,对源代码进行分析。如果不喜欢某些东西,则可以更改它。图4 mysql查看信息以下部分是mysql的配置简介:redhat fedora core6.0中当前mysql版本为mysql-5.0.22-2.1,若没有安装则可以使用rmp ivh + mysql软件包的全路径名。在终端中使用命令/etc/rc.d/init.d/mysqld start或 service mysqld start即可以启动mysql数据库,使用mysql u root p命令即可进入mysql数据库,如图5所示:图5 进入数据库命令mysql默认产生的用户名和密码是root和空密码,出于安全性考虑需要手动设置mysql密码,可以使用mysqladmin u root password 修改root用户密码。2.2.3 网页制作工具1. dreamweaver mx 2004dreamweaver是美国macromedia公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。dreamweaver对于dhtml(动态网页)的支持特别好,可以轻而易举地做出很多眩目的互动页面特效。插件式的程序设计使得其功能可以无限的扩展。利用 dreamweaver 中的可视化编辑功能,可以快速地创建页面而无需编写任何代码。dreamweaver制作出来的网页兼容性比较好,制作效率也很高,dreamweaver包括可视化编辑、html代码编辑的软件包,并支持activex、javascript、java、flash、shockwave等特性,而且它还能通过拖拽从头到尾制作动态的html动画,支持动态html(dynamic html)的设计,使得页面没有plugin也能够在netscape和ie 4.0浏览器中正确地显示页面的动画。同时它还提供了自动更新页面信息的功能。本系统的整个开发过程基本上是通过dreamweaver网页制作工具来设计调试完成的。2. photoshop cs2网页制作离不开图片,生动的网页需要有各式图片填充其中。而photoshop的专长就在于图像处理。从功能上看,photoshop可分为图像编辑、图像合成、校色调色及特效制作部分。图像编辑是图像处理的基础,photoshop可以对图像做各种变换如放大、缩小、旋转、倾斜、镜像、透视等。也可进行复制、去除斑点、修补、修饰图像的残损等。这在婚纱摄影、人像处理制作中有非常大的用场,去除人像上不满意的部分,进行美化加工,得到让人非常满意的效果。 图像合成则是将几幅图像通过图层操作、工具应用合成完整的、传达明确意义的图像,这是美术设计的必经之路。photoshop提供的绘图工具让外来图像与创意很好地融合,成为可能使图像的合成天衣无缝。 校色调色是photoshop中深具威力的功能之一,可方便快捷地对图像的颜色进行明暗、色编的调整和校正,也可在不同颜色进行切换以满足图像在不同领域如网页设计、印刷、多媒体等方面应用。 特效制作在photoshop中主要由滤镜、通道及工具综合应用完成。包括图像的特效创意和特效字的制作,如油画、浮雕、石膏画、素描等常用的传统美术技巧都可藉由photoshop特效完成。而各种特效字的制作更是很多美术设计师热衷于photoshop的研究的原因。2.3 linux+apache+php+mysql解决方案的优势开源世界有一个著名的说法就是lamp,它是linux、apache、mysql(开源数据库)和perl/php/python的首字母缩写。linux+apache+mysql+perl/php/python,是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的web应用程序平台,p所代表的三种脚本语言,以其灵活性、简便性和快捷性获得为数众多的开发者的青睐。随着开源潮流的蓬勃发展,开放源代码的lamp已经与j2ee和.net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个it界的关注。从网站的流量上来说,70%以上的访问流量是lamp来提供的,lamp是最强大的网站解决方案。linux以它的高效性和灵活性著称。它能够在pc计算机上实现全部的unix特性,具有多任务、多用户的能力。linux是在gnu公共许可权限下免费获得的,是一个符合posix标准的操作系统。linux操作系统软件包不仅包括完整的linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的x-window图形用户界面,如同我们使用windows nt一样,允许我们使用窗口、图标和菜单对系统进行操作。linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有unix的全部功能,任何使用unix操作系统或想要学习unix操作系统的人都可以从linux中获益。运行linux需要的配置并不高,支持众多的pc周边设备,并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿来使用。apache是一个web服务器软件,和microsoft的iis相比,具有免费、开源、轻便,运行可靠的优势,据统计,目前在全球的web服务器市场,apache占有60%的市场。php是一个跨平台的服务器端的脚本语言,它是专门为web而设计的。在html页面中可以嵌入php代码,这些代码在每次页面被访问时执行。php代码将在web服务器中被解释并且生成html输出。php免费、开源。支持数据库操作,可以和html混和编辑,是进行中小型web开发的一个理想的工具。php对各种数据库具有良好的支持,包括但不局限于:oracle、ibm db2、mysql、postgresql、informix、sysbase、sql sever、access等。而且最新的php5引入了新的对象模型(object model),完全重写了 php 处理对象的方式,具有更佳性能和更多特性。目前,已有超过2300万个站点使用php。同时,php的源代码完全公开,在open source意识抬头的今天,它更是这方面的中流砥柱,随着新函数库的不断加入,使php无论在unix或是win32的平台上都可以有更多新的功能。mysql是一个快速、健壮和易用,且支持多线程、多用户的关系数据库管理系统(rdbms)。允许你高效地存储、搜索、排序和检索数据。具有速度快、运行稳定的特点。和微软的access相比,access属于桌面型单机数据库,对sql92的支持不完全。mysql属于网络型数据库,支持多人同时并发操作。而且最新的mysql5具有许多新的特性,如外键、事务、子查询、视图、存储过程、游标、触发器等企业级数据库具有的特征。对于开发数据驱动的网站而言,选择mysql应该说是最佳组合,这不仅因为mysql是免费的,更在于它具有许多同大型数据库相媲美甚至超过它们的优良性能。更重要的是,虽然apache、mysql和php本身并不是专门设计成同另外几个程序一起工作的,但由于它们都是影响较大的开源软件,拥有容易学习、便于使用,而且都跨平台这些共同特点,这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得更加普遍。并且它们为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的linux发布版中都默认包含了这些产品。linux操作系统、apache服务器、mysql数据库和php语言,这些产品共同组成了一个强大的web应用程序平台,因此本网站系统采用lamp的解决方案非常理想,不仅配置简单、性能好、质量和可行性高且在很大程度上节约了成本投资。第三章 系统分析3.1系统需求分析3.1.1功能分析校友联谊网站是面向本校学生的一个在线交流平台,每个用户都可以发布各自的信息或提出不同的看法,以便于其他用户进行交流讨论。管理员可以对讨论区、文章、公共信息、新闻公告和用户进行管理。(1)系统需要经过有效的身份验证才能登录,即经过注册以后才能够登录进入主页。(2)在主页面,用户可以进行浏览相关信息,查看学校通知公告,查看、搜索其他用户发布的公共信息,通过友情链接进入学校网站主页。(3)讨论区分为两级,即主讨论区和分讨论区。进入讨论区模块后,用户可以像在bbs里一样浏览文章、发布文章、回复文章。(4)将用户个人资料管理和发布公共信息归为个人空间,进入后用户可以自己修改注册信息(包括对密码的修改),以及发布公共信息。(5)进入后台,首先是管理员的登录,分别实现讨论区的管理,公告的发布,文章、公共信息以及用户的管理等。3.1.2可行性分析可行性分析(feasibility analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、社会等方面进行分析和研究,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。本系统是由本单位人员研发的,linux+apache+mysql+php的环境使用的都是开源免费的操作系统和软件,在经济上可以说是支出很有限的,并且本系统实施后可以显著提高工作效率。所以本系统在经济上是可行的。同时系统的软件开发平台成熟可行;硬件方面,在科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足系统的需要。而且大学的校园网路覆盖了教学区和学生区的主要建筑物,从而满足了校内各学院,各职能部门,各直属单位上网需求。学校良好的网络设施为信息学院开发学院级网站系统提供了坚实的基础。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。3.1.3子系统分析功能分析阶段已经粗略的研究了该系统的需求,并分析了开发平台及软件的可行性,但为了准确确定目标系统必须做什么,了解用户的明确需求,现进一步明确所要实现的子系统功能。(1)用户注册登录模块本系统主要是提供给晓庄学院信息技术学院学生使用的,用户登录之后才可以使用该网站系统,所以用户注册时必须填写自己的真实姓名而且必须是汉字组成。同时在用户丢失密码后可以重建账号密码,为了实现邮箱激活新密码功能,用户注册时需要提供真实邮箱地址。用户访问网站结束后可以安全登出。(2)讨论区模块用户进入讨论区前台后可以浏览文章、发表和回复文章。管理员在后台可以添加、修改、删除讨论区,也可以对文章进行管理,如删除。(3)个人空间模块系统将用户个人资料修改和发布公共信息的功能归并如个人空间模块,用户进入个人空间模块后可以发布公共信息、修改自己的注册信息,包括用户名、密码和邮箱地址等。(4)后台管理模块主要功能是负责讨论区、文章、公共信息和用户的管理,如修改和删除,以及新闻公告的发布和管理。第四章 系统设计4.1总体结构根据前面的需求分析和子系统分析,设计出校友联谊网站的总体结构图如图6所示:图6 “校友联谊网站”总体结构图4.2设计概要4.2.1首页设计结合网站需求和功能分析,设定网站总体风格后设计网站首页如图7所示。网站首页是一个学院的形象页面,首页的设计对整个网站来说是非常重要的,色调和谐,排版整齐的主页会给人留下好的第一印象。一个完整的网站,应当在主页上就各方面的内容呈现出来,从而让浏览者从主页上获取更多的信息,再吸引他们进行进一步了解,提高网站的人气。4.2.2前台模块设计(1)系统首页在系统首页设计中,充分利用了表格规划网页,体现了布局管理特性,整个页面布局整齐,条理清晰,模块划分明确。导航条直观的将网站的几个模块清晰地呈现给用户,用户可以直接链接到相关功能,这都明确地提示和引导了使用者怎样进行适当的操作。登陆后网页上显示用户登录信息并给出安全登出的链接。布局的左半部分由四块组成,最上方是一个用javascript编写的万年历程序,显示当前日期和时间,中间是网站的最新新闻公告和公共信息搜索部分,最下方是友情链接,用户可以通过图片轻松链接到南京晓庄学院的主页。布局的右半部分由学校简介和公共信息2个模块信息组成。学校简介部分简要介绍了学校的历史和现况及成果。公共信息部分列出了最新的十条公共信息,用户可以点击信息标题查看具体内容,点击more图标浏览显示全部该模块信息。图7 网站首页(2)讨论区进入导航条该处直接链接进入讨论区,显示讨论区首页,用户进入后可以浏览、发表或回复文章。(3)个人空间进入导航条该处直接链接进入个人空间,用户进入后修改自己的注册信息或发布公共信息。(4)后台管理入口导航条该处提供了管理员进入后台的入口,管理员登入后台可以发布新闻公告,实施对讨论区、文章、公共信息和用户管理,进行修改和删除等操作。(5)登出供用户安全退出本系统。4.2.3后台管理设计在判断权限允许后,管理员登陆进入后台管理模块,后台首页如图8所示:图8 后台页面(1)管理讨论区管理员可以新建讨论区、对现存讨论区信息进行修改或者删除讨论区。(2)管理公共信息/文章管理员可以管理公共信息/讨论区文章,查看、删除相应公共信息或文章。(3)管理新闻公告管理员可以发布或删除新闻公告。(4)管理用户管理员可以管理用户,执行修改用户注册资料(修改用户密码)、删除用户等操作。(5)返回前台首页可方便管理员返回前台首页,浏览网站其他模块。4.3数据库设计4.3.1数据库逻辑结构根据校友联谊网站系统的功能需求,数据库中应有用户信息表、公共信息表、新闻公告表、讨论区分类主题表、文章表以及密码重建表。图9 e-r图其中,用户信息表应该包括用户名、用户真实姓名、用户密码、用户性别、班级名称、常用邮箱地址、通讯地址以及其他联系方式、密码提示问题和密码提示答案、自我介绍、用户权限、用户发表文章数、注册时间、登录次数等信息。同时,为了保证隐私和安全性,管理员应该不能看到用户的密码,所以表中存放的应是md5加密过后的字段。公共信息表应该包括信息编号、信息标题、信息的发布人、信息内容、信息的类型以及信息发布的时间等信息。新闻公告表应包括新闻编号、新闻标题、新闻的发布人、新闻的内容和新闻发布时间等信息。讨论区分类主题表应包括讨论区编号、是否是主讨论区、所属主讨论区编号、讨论区名、讨论区描述(介绍)、最后发表的文章信息、论区下所有文章的数量以及主题文章的数量等信息。文章表应包括文章编号、文章所属讨论区编号、是否为回复的文章、作者用户名、作者真实姓名、文章标题、文章内容、文章的浏览量和回复量、文章发表时间和最后回复时间等信息。密码重建表应包括用户名、验证码和新密码这三个基本信息。数据库的e-r图反映了实体、实体的属性和实体之间的联系,如图9所示。4.3.2数据库物理结构根据以上分析,数据库中6张表的物理结构如下:表1用户数据表member关键字段类型及含义序号字段名称类型注释1idvarchar(12)primarykey,用户名,不允许为空2passwdvarchar(200)用户密码,md5加密后结果,不允许为空3namevarchar(8)用户真实姓名4emailvarchar(50)用户常用邮箱地址5powerint(1)用户权限,不允许为空6postnumint(4)用户发表文章量,不允许为空7jointimedatetime用户注册时间8logintimesint(4)用户登录次数表2公共信息表message关键字段类型及含义序号字段名称类型注释1idtinyint(4)primarykey,公共信息编号 ,自动增12titlevarchar(40)公共信息标题3authorvarchar(8)信息发布人4content text公共信息内容5mess_sortvarchar(15)公共信息类型6posttimedatetime信息发布时间表3新闻公告表news关键字段类型及含义序号字段名称类型注释1idtinyint(4)primarykey,新闻公告编号 ,自动增12titlevarchar(40)新闻公告标题3authorvarchar(8)新闻发布人4content text新闻公告内容5posttimedatetime新闻发布时间表4讨论区表topic关键字段类型及含义序号字段名称类型注释1idtinyint(4)primarykey,讨论区编号 ,自动增12pidint(4)主讨论区编号(主论区该字段为0)3namevarchar(20)讨论区名4description varchar(80)讨论区描述5lastpostidint(4)最后发表文章编号6postcountint(4)文章量7post_m_countint(4)主题量表5文章表posts关键字段类型及含义序号字段名称类型注释1idint(4)primarykey,新闻公告编号 ,自动增12topicidint(4)所属讨论区编号3re_idint(4)回复文章编号(主题文章该字段为0)4posteridvarchar(12)作者id5postervarchar(8)作者姓名6titlevarchar(40)文章标题7content text文章内容8viewcountint(4)问行浏览量9re_countint(4)文章回复量10posttimedatetime文章发布时间11last_re_timedatetime最后回复文章发布时间表6重建密码表findpass表关键字段类型及含义序号字段名称类型注释1idtinyint(12)primarykey,用户名2codestringvarchar(20)验证码3newpassvarchar(200)新密码,md5加密后结果第五章 系统实现5.1用户注册登录模块网站与用户是密不可分的,既然需要注册用户就要提供给用户一个友好的注册登陆界面。用户注册登录模块的功能包括:用户注册、用户登录登出和密码重建三大部分。5.1.1用户注册新用户注册页面提供给用户一个表单,以便让用户输入相关内容。新用户想要访问本网站必须先注册,填写真实信息。图10 新用户注册页面其中用户名、密码、真实姓名、性别、班级以及常用邮件地址为必填选项。用户名和真实姓名唯一不可重复。选中高级选项复选框会显示表单隐藏项,用户可以选填手机、qq、自我介绍等信息。用户注册过程中可以检测自己想要使用的用户名是否已经被他人使用。实现该功能的主要代码如下:function checkid()var value = $(id).value;if($(id).value!=)var url = deal_checkid.php?id=+value;new ajax.request(url,method : get,onsuccess : function(response) resultcount = parseint(response.responsetext); if(resultcount =0) alert(可以使用该用户名!);elsealert(很抱歉,用户名已经被注册!);.bind(this),onfailure : function() alert(很抱歉,页面出错!); .bind(this) );else alert(请输入用户名!);该javascript程序首先获取用户名,和deal_checkid.php页面进行交互,deal_checkid.php页面从数据库中读取记录,返回id字段值为所传用户名的记录的条数。ajax.request()判断获取到的返回值,如果已经存在记录,则给出用户名已经被注册的提示,反之则提示可以使用该用户名。在用户输入密码时页面调用javascript依据密码长度、包含的字符判断密码强度,并自动检测两次密码输入是否一致,给出提示。注册的后台处理首先获取用户输入的各项内容,其中登录用户名和真实姓名是最为重要的两项,因为这两项要求具有唯一性,且真实姓名要作为与其他用户交流的唯一依据,所以要对用户输入的数据进行判断。regist.php页面表单获取到的数据用post方法传到deal_reg.php页面进行处理。在deal_reg.php页面首先判断必填信息是否都为空,再进入数据库查询用户名是否已经存在,判断两次输入密码是否一致,检查邮箱地址格式是否正确,密码提示问题与答案是否对应。如果都没有问题则用md5加密用户密码,向数据库中添加用户信息记录,否则提示错误信息,返回注册页面请用户重新填写注册。判断邮箱格式的代码如下:if(preg_match(/w-*.*w-+(0-9a-za-z0-9a-za-z-*.)+a-za-z2,3$/,$email)=0)$error.=请正确填写email!;5.1.2用户登录登出用户信息添加到用户表member后,就要让用户能够正确登录到系统了。图11 用户登录页面用户在登录页面输入用户名和密码后,处理用户登录页面deal_login.php根据用户名从数据库中读出该用户的信息,并进行比较,如果用户输入的信息与库中存在的一致(用户名存在,密码输入无误),则将该用户的登录次数增1,把用户的相关登录信息存为cookie变量,然后自动跳转到网站首页,实现代码如下:/用户登录次数增1$sql=update member set logintimes=logintimes+1 where id=$rowsid;mysql_query($sql);setcookie(user,$rowsname); /使用cookie保存用户的登录信息header(location:index.php);为什么使用cookie:编写web互动程序,保存用户的登录信息是十分必要的,这样可以提高网站对用户的吸引力。目前常见的存储机制有两种:一种是把用户信息存储于服务器端的主机上的session;另一种是把用户信息存储于客户端即客户机上的cookie。同样作为互动web页的存储机制session与cookie有其相似之处。本系统之所以选择使用cookie主要是因为同session相比cookie有其独特之处。1. cookie保存在客户端,而session的内容保存在服务器端,只是把一个session id保存在客户端。也就是说,cookie比session更安全,同时也说明session是基于cookie的(用cookie来保存session id)。2. 由于session是保存在服务器端的,因此会占用服务器的空

温馨提示

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

评论

0/150

提交评论