大学图形图像研究所网站设计与实现.docx
- 文档编号:27308385
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:87
- 大小:4.07MB
大学图形图像研究所网站设计与实现.docx
《大学图形图像研究所网站设计与实现.docx》由会员分享,可在线阅读,更多相关《大学图形图像研究所网站设计与实现.docx(87页珍藏版)》请在冰豆网上搜索。
大学图形图像研究所网站设计与实现
本科生毕业论文(设计)
题目四川大学图形图像研究所网站
设计与实现
学院软件学院
专业软件工程
学生姓名柳佳林
学号0643111262年级2006
指导教师吴志红
教务处制表
二Ο一Ο年六月一日
四川大学图形图像研究所网站设计与实现
软件工程
学生柳佳林指导老师吴志红
[摘要]本次项目课题是开发四川大学图形图像所网站,目标是使用户能够快速访问网站并且管理员能够通过后台操控管理网站数据,由于是一个小型项目开发,因此,采用Php+MySQL+Apache结构体系,运用软件工程开发思想,采用瀑布式开发流程进行网站开发,从而完成本次项目设计。
在设计过程中,对Php的历史和发展以及前景进行了重新学习,并使用了之前未曾运用过的数据库工具——phpMyAdmin,在整个开发过程中也充分运用了两者结合的快速稳定安全的特点,是整个网站不论从开发还是后期维护,都变的更加简洁。
在Php编成过程中,采用了Smarty模板开发,分离逻辑代码和外在的内容,提供了一种易于管理和使用的方法,将原本与HTML代码混杂在一起PHP代码逻辑分离,同时Smarty模板有独特的缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,这样可以充分实现用户快速浏览网站的要求。
[主题词]网站;Php;MySQL;Smarty模板
DesignanddevelopmentforWebsiteofGraphicsInstituteatSichuanUniversity
SoftwareEngineering
Student:
LIUJialinAdviser:
WUZhihong
[Abstract]ThetopicofthisprojectistodevelopthewebsiteforGraphicsInstiturtionofSichuanUniversity,thegoalisthatbothusersandadministratorcanvisitthewebsitequicklyandadministratorcaneasilydothedatamanagementatthewebsitebackstage.Duetoasmallprojectdevelopment,therefore,usedPhp+MySQL+Apachestructuresystem,usingthesoftwareengineeringdevelopmentideas:
thewaterfalldevelopmentprocess,thuscompletingthiswebsitedevelopmentprojectdesign.Inthedesignprocess,learndthehistoryanddevelopmentofPhpandprospects.Ihaveneverusedthiskindofstructurofdatabasedesign,sophpMyAdminwaschoosentobethetoolandthismakesfulluseofthecombinationofrapidandstablesafetyfeatures,istheentiresitenomatterfromthedevelopmentormaintenance,aremoreconcise.InPhp,adoptedintoprocessdevelopment,separationSmarty-templatecodeandexternallogic,providesaneasytomanageandusethemethodsandmixedtogetherwiththeHTMLcode,andPhpcodelogicalseparationSmarty-templatecacheisuniquetechnology,itcanbeseenasaHTMLfilewhichhadbufferdintoastaticHTMLpages,socanfullyrealizetherequirementsforfastbrowsingtheweb.
[KeyWords]website;Php;MySQL;Smarty-template
1综述
随着科技的飞速发展和应用,越累越多的人接触并已经使用互联网,如今大到国际时事政治变动,小到街巷柴米油盐,通过互联网都能找到准确的信息。
网站,作为用户使用互联网一个最主要的平台,也在不断的进行着更新和完善。
当今的网站,本着以用户为本的主题思想,必须做到网站内容全、浏览速度快、更新快、准确等要点,而要满足以上需求,除了相关人员的搜索更新及时外,网站本身制作的技术非常关键。
本次项目设计,我做的是四川大学图形图像研究所的网站。
内容方面,主要包括图像所的概况、师资力量、科研项目、科研成果、招生计划、招生信息、人才培养等板块。
在技术方面,采用PHP+HTML与数据库MySQL相结合来实现。
对于PHP+MySQL,可以说是今天用的最多的动态组合,效率高,而且在企业中,由于MySQL的免费,使用率更高。
通过这次开发制作,培养和提高综合运用所学专业知识的能力以及分析问题和解决实际问题的能力,训练进行工程技术人员所必须具备的基本素质,也是就业前的必要过度和准备,同时,学习和掌握非专业的工作场所知识和技能从而为以后能够胜任工作做好准备。
2技术简介
2.1Php技术简介
2.1.1Php的概念和功能
PHP,是英文超级文本预处理语言HypertextPreprocessor的缩写。
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。
它可以比CGI或者Perl更快速的执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统[1]。
2.1.2Php的发展
PHP最初是1994年RasmusLerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。
后来又用C语言重新编写,包括可以访问数据库。
在1995年以PersonalHomePageTools(PHPTools)开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。
在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。
以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。
第二版定名为PHP/FI(FormInterpreter)。
PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。
到了1996年底,有15000个网站使用PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。
而在1997年中,开始了第三版的开发计划,开发小组加入了ZeevSuraski及AndiGutmans,而第三版就定名为PHP3。
2000年,PHP4.0又问世了,其中增加了许多新的特性[2]。
PHP原本的简称为PersonalHomePage,是RasmusLerdorf为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。
最初这些工具程序用来显示RasmusLerdorf的个人履历,以及统计网页流量。
他将这些程序和一些表单直译器整合起来,称为PHP/FI。
PHP/FI可以和数据库连接,产生简单的动态网页程序。
RasmusLerdorf在1995年6月8日将PHP/FI公开释出,希望可以透过社群来加速程序开发与寻找错误。
这个释出的版本命名为PHP2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。
程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性。
在1997年,任职于TechnionIIT公司的两个以色列程序设计师:
ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础,而PHP也在这个时候改称为PHP:
HypertextPreprocessor。
经过几个月测试,开发团队在1997年11月释出了PHP/FI2,随后就开始PHP3的开放测试,最后在1998年6月正式释出PHP3。
ZeevSuraski和AndiGutmans在PHP3释出后开始改写PHP的核心,这个在1999年释出的剖析器称为ZendEngine,他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。
在2000年5月22日,以ZendEngine1.0为基础的PHP4正式释出,2004年7月13日则释出了PHP5,PHP5则使用了第二代的ZendEngine。
PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函数库)、以及许多效能上的增强。
目前PHP4已经不会继续更新,以鼓励用户转移到PHP5。
2008年PHP5成为了PHP唯一的有在开发的PHP版本。
将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化。
PHP6的开发也正在进行中,主要的改进有移除register_globals、magicquotes和Safemode的功能[3]。
2.1.3Php的特性
Php是免费并且开源,使得其源代码事实上都可以得到。
由于是基于服务器端,即是运行在服务器端的脚本,所以它可以运行在UNIX、LINUX、WINDOWS等不同系统下。
PHP坚持脚本语言为主,这与Java和C++不同。
PHP消耗相当少的系统资源。
在图像处理方面,PHP可以动态创建图像。
在php4,php5中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。
图2-1用于高端PHP部署的一个非常常见的体系结构
2.1.4Php的其它优点
2.1.4.1数据库
PHP在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
AdabasD,DBA,dBase,dbm,filePro,Informix,InterBase,mSQL,MicrosoftSQLServer,MySQL,Solid,Sybase,ODBC,Oracle8,Oracle,PostgreSQL。
2.1.4.2高级OOP技术
PHP不支持永久对象,在OOP中永久对象是可以在多个应用的引用中保持状态和功能的对象,这意味着拥有将对象保存到一个文件或数据库中的能力,而且可以在以后装入对象。
这就是所谓的序列化机制。
PHP拥有序列化方法,它可以通过对象进行调用,序列化方法可以返回对象的字符串表示。
然而,序列化只保存了对象的成员数据而不包话方法。
由于本次设计中未涉及,故不做过多介绍。
2.1.4.3模板引擎Smarty
a)Smarty的概念
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。
它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。
简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
[4]
b)Smarty的优点
速度:
采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。
编译型:
采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
缓存技术:
Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
插件技术:
Smarty可以自定义插件。
插件实际就是一些自定义的函数。
格式重排:
模板中可以使用if/elseif/else/endif。
在模板文件使用判断语句可以非常方便的对模板进行格式重排[5]。
2.1.5Php的版本
2.1.5.1Php1(1.0.0)
1995年6月8日发布,正式名称为"PersonalHomePageTools(PHPTools)",第一次使用了"PHP"的名字
2.1.5.2Php2(2.0.0)
1996年4月16日发布,针对PHP1.0的改进版,速度更快、体积更小,更容易产生动态网页。
2.1.5.3Php3(3.0.0)
1998年6月6日发布,开发方式改成多人共同参与。
ZeevSuraski和AndiGutmans为了这个版本重写了解析引擎。
PHP3跟Apache服务器紧密结合,它不断的更新和加入新的功能,而且几乎支持所有主流与非主流数据库,再以它能高速的执行效率,使得PHP在1999年中的使用站点已经超过了150000。
加上它的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。
不断地有新的函数库加入,以及不停地更新的活力,使得PHP无论在UNIX、LINUX或是Windows的平台上都可以有更多新的功能。
它提供丰富的函数,使得在程序设计方面有着更好的支持。
2.1.5.4Php4(4.0.0;4.1.0;4.2.0;4.3.0;4.4.0;4.4.8;4.4.9)
2000年5月22日4.0.0发布。
PHP4.0整个脚本程序的核心大幅更动,让程序的执行速度,满足更快的要求。
在最佳化之后的效率,已较传统CGI或者ASP等程序有更好的表现。
而且还有更强的新功能、更丰富的函数库。
PHP4.0是更有效的,更可靠的动态Web页开发工具,在大多数情况运行比PHP3.0要快,其脚本描述更强大并且更复杂,最显著的特征是速率比的增加。
PHP4.0这些优异的性能是PHP脚本引擎重新设计产生的结果:
引擎由AndiGutmans和ZeevSuraski从底层全面重写。
PHP4.0脚本引擎——Zend引擎,使用了一种更有效的编译——执行方式,而不是PHP3.0采用的执行——当解析时模型。
2.1.5.5Php5(5.0.0;5.1.0;5.2.0;5.2.8;5.2.9;5.2.10;5.3.0)
在长时间的开发及多个预发布版本后,2004年7月13日,PHP5.0发布。
该版本以Zend引擎Ⅱ为引擎,并且加入了新功能如PHPDateObjects(PDO)。
现在PHP5.0版本强化更多的功能。
首先,完全实现面向对象,提供名为PHP兼容模式的功能。
其次是XML功能,PHP5.0版本支持可直观地访问XML数据、名为SimpleXML的XML处理用界面。
同时还强化了XMLWeb服务支持,而且标准支持SOAP扩展模块。
数据库方面,PHP新版本提供旨在访问MySOL的新界面——MySQL。
除此前的界面外,还可以使用面向对象界面和预处理语句(PreparedStatement)等MySQL的新功能.另外,PHP5.0上还捆绑有小容量RDBMS-SQLite.
2.1.6Php的安全
PHP其实就是Web服务器的一个模块功能,要Php安全则首先要保证Web服务器的安全。
据NationalVulnerabilityDatabase数据显示,与PHP有关的数据库攻击比例为:
20%2004,28%2005,43%2006,36%2007,and35%2008[6]。
其中很多的漏洞都可以通过远程操作完成,如:
黑客可以通过网络连接攻击服务器,达到盗取或毁坏数据,发送垃圾邮件或进行拒绝服务攻击。
2.1.7Php的未来——Php6的畅想
2.1.7.1支持Unicode
虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。
另外一点,PHP也可以在.ini文件中设定是否开启支持Unicode,所以决定权在编程人员手里,这样,不需要Unicode时只需要关掉Unicode的支持,而且PHP的性能并不会有大幅度的影响,主要的影响在于需要引用字符串的函数[7]。
2.1.7.2大清理
Php已经被使用了很长时间,由于一直被不同群体完善,必然存在一些不好的习惯,这些缺点导致低效率编码以及一些安全漏洞,这些都是因为Php的编程人员造成,但提及register_globals,magic_quotes和safe_mode这些函数时,几乎是所有编程人员的噩梦,引文它们确实没有必要再存在下去,相信Php6中,这些会被清理。
2.1.7.3可供选择的Php缓存
这是一个提高PHP性能的功能,未来它被放入PHP核心中,并且可以选择是否启用APC
2.1.7.4OO功能
在Php5中,OO模型的加入可以说是变化和影响最大的变化,php6则会更大的扩展和应用这些优点,Php的namespace命名方法和Xml以及C++都是很相似的。
2.2MySQL技术简介
2.2.1MySQL概述
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[8]。
2.2.2MySQL特性
MySQL是用C和C++编写,并使用了多种编译器进行测试完成的,这样保证了源代码的可移植性,同时还能支持HP-UX、Linux、MacOS、Windows等多种操作系统.为多种编程语言提供了API。
这些编程语言包括C、C++、Java、PHP和Ruby等。
MysQL支持多线程,充分利用CPU资源,优化的SQL查询算法,从而有效地提高查询速度。
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
MysQL能提供如中文的GB2312、日文的Shift_JIS等多种语言编码。
它提供TCP/IP、ODBC和JDBC等多种数据库连接途径以及提供用于管理、检查、优化数据库操作的管理工具.从而可以处理拥有上千万条记录的大型数据库。
2.2.3SQL语言的功能分类
2.2.3.1数据定义语言(DDL)[9]
CREATE:
建立数据库或表
ALTER:
更改数据库或表的结构
DROP:
删除数据库或表
2.2.3.2数据库操作语言(DML)
SELECT:
搜索数据
INSERT:
增加数据
UPDATE:
更新数据
DELETE:
删除数据
2.2.3.3数据控制语言(DCL)
GRANT:
授予用户操作数据的权限
REVOKE:
撤销用户操作数据的权限
COMMIT:
确定数据的更改
ROLLBACK:
取消数据的更改
2.2.4MySQL应用
2.2.4.1MySQL不足之处
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差),缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能等[10]。
2.2.4.2本项目选用MySQL的原因
根据《需求分析说明书》和《概要设计说明书》描述,对于本项目来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,且性能很十分出色,因为它包含一个缺省桌面格式MyISAM。
MyISAM数据库与磁盘非常地兼容而不占用过多的CPU和内存。
加之使用的是phpMyAdmin,phpMyAdmin是由PHP写成的MySQL数据库系统管理程序,让管理者可用Web接口管理MySQL数据库。
借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量数据的导入及导出更为方便。
其中一个更大的优势在于由于phpMyAdmin跟其他PHP程序一样在网页服务器上运行,但是可以在任何地方使用这些程序产生的HTML页面,也就是于远程管理MySQL数据库。
使用phpMyAdmin可以方便的建立、修改、删除数据库及数据表[11]。
2.2.5MySQL的安全策略
2.2.5.1内部安全性--保证数据目录访问的安全
MySQL服务器通过在MySQL数据库中的授权表提供了一个灵活的权限系统。
可以设置这些表的内容,允许或拒绝客户对数据库的访问,这提供了防止未授权的网络访问对数据库攻击的安全手段,但是如果主机上其他用户能直接访问数据目录内容,那么建立对通过网络访问数据库的良好安全性则毫无帮助,除非本机只有管理员这个唯一用户,否则就要关心在这台机器上的其他用户获得对数据目录的访问的可能性。
2.2.5.1外部安全性—保证网络访问的安全
MySQL的安全系统很灵活的,能允许多种不同方式设置用户权限。
一般地,可使用标准的SQL语句GRANT和REVOKE语句修改控制客户访问的授权表,并且通过了解MySQL授权表的结构和服务器如何利用它们决定访问权限,允许通过直接修改授权表增加、删除或修改用户权限并允许检查这些表时诊断权限问题。
2.3ApacheServer技术简介
2.3.1ApacheServer概述
Apache是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
它源于NCSAhttpd服务器,特点是简单、速度快、性能稳定,并可做代理服务器来使用。
ApacheServer最初只用于小型或实验网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美[12]。
2.3.2ApacheServer的历史
Apache起初由伊利诺伊大学香槟分校的国家超级计算机应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 图形图像 研究所 网站 设计 实现