毕业设计(论文)-基于PHP技术的小型企业网站开发.doc_第1页
毕业设计(论文)-基于PHP技术的小型企业网站开发.doc_第2页
毕业设计(论文)-基于PHP技术的小型企业网站开发.doc_第3页
毕业设计(论文)-基于PHP技术的小型企业网站开发.doc_第4页
毕业设计(论文)-基于PHP技术的小型企业网站开发.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

大理学院本科毕业设计基于PHP技术的小型企业网站开发-总体规划、全局操作、图片操作The Developent of Small Enterprise Website Based on PHP Technology -Overall Planning、Global Operations、Picture Operation学 院 : 作者姓名 : 作者学号 : 指导教师 : 专 业 : 年级(班级) : 起止日期 : 2009年9月1日2009年11月20日 制表日期: 2009 年 8月25日摘 要随着Internet在中国的迅速发展,人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。由于WEB页面能把文本、图像、声音、动画、视像等多种媒体信息集于一体,不但使信息的显示更加生动,而且使信息的浏览更为方便,同时WEB页能实现网上交易平台、客户信息反馈方便了企业与客户之间信息交流,因此许多企业纷纷建设网站以增强企业知名度.动易家具网站主要介绍易动家具的相关信息,程序整体使用PHP+MySQL制作,能使企业随时向客户展示最新的商品信息,客户也可以使用留言将自己的一些想法反馈给企业,拉近企业与客户之间的距离。本篇论文是对我制作的网站的一些论述,主要论述了网站设计与规划的主体思想,利用PHP和MySQL数据库之间的交互实现企业动态更新信息,以及在设计过程中所遇到的要点、难点等。关键词:PHP;MySQL;企业网站AbstractAlong with the rapid development of the Internet in China, Peoples Daily life increasingly using this new technique for their work and study. Due to the WEB page can put text, images, audio, animation, video etc. Various media information collection, not only make information display more vivid, and make the information, WEB browsing convenient page can realize the online trading platform, customer feedback convenient communication between firm and customer information, so many enterprises to enhance awareness of construction site.Easy moving furniture easily move furniture website mainly introduces the related information, the whole program using PHP+MySQL, can make the enterprise to customer displaying the latest product information, customers also can use some of his ideas will leave feedback to the enterprise, close the distance between the enterprise and customers. This essay is to make some of my website, mainly discusses the website design and planning of the main ideas, using PHP/MySQL database and the interaction between the enterprise and the dynamic update information in the design process of the main difficulties encountered, etc.Key Words:PHP;MySQL;Small Enterprise Website目 录摘 要IAbstractII第一章 绪论11.1 世界互联网的发展11.2 目前的互联网现状11.3 企业电子商务的兴起21.4 企业为什么要建立网站2第二章 LAMP架构介绍32.1 Linux起源、特性及应用领域32.2 Apache简介42.3 MySQL简介42.4 PHP简介4第三章 需求分析63.1 功能性需求63.1.1 网站的基本信息设置63.1.2 导航管理63.1.3 图片管理63.1.4 图片分类73.1.5 图片展示73.1.6 商品分类73.1.7 商品展示73.2 非功能性需求73.2.1 后台界面73.2.2 前台页面8第四章 概要设计94.1 数据库设计94.1.1 数据库设计概述94.1.2 数据库需求分析94.1.3 数据库逻辑结构设计104.1.4 数据库物理结构设计124.2 系统结构设计144.2.1 网站后台结构144.2.2 网站前台结构15第五章 详细设计165.1 系统公共文件核心代码165.1.1 前台核心控制文件165.1.2 前台公用函数库185.1.3 数据库类205.1.4 验证码类225.2 网站管理后台245.2.1 管理员登录245.2.2 系统信息265.2.3 系统设置275.2.4 导航管理285.2.5 修改管理员密码295.2.6 图片管理305.2.7 图片展示335.2.8 商品展示355.3 网站前台355.3.1 前台首页355.3.2 网站导航365.3.3 图片展示365.3.4 商品展示37第六章 系统测试386.1 测试的定义及目的386.2 测试的原则386.3 测试的方法386.3.1 界面测试386.3.2 功能测试396.3.3 需求测试406.3.4 性能测试40总 结41致 谢42参 考 文 献43I大理学院本科毕业论文第一章 绪论1.1 世界互联网的发展Internet的最早起源于美国国防部高级研究计划署DARPA(Defence Advanced Research Projects Agency)的前身ARPAnet,该网于1969年投入使用。由此,ARPAnet成为现代计算机网络诞生的标志。从六十年代起,由ARPA提供经费,联合计算机公司和大学共同研制而发展起来的ARPAnet网络。最初,ARPAnet主要是用于军事研究目的,它主要是基于这样的指导思想:网络必须经受得住故障的考验而维持正常的工作,一旦发生战争,当网络的某一部分因遭受攻击而失去工作能力时,网络的其他部分应能维持正常的通信工作。ARPAnet在技术上的另一个重大贡献是TCP/IP协议簇的开发和利用。作为Internet的早期骨干网,ARPAnet的试验并奠定了Internet存在和发展的基础,较好地解决了异种机网络互联的一系列理论和技术问题。 1983年,ARPAnet分裂为两部分,ARPAnet和纯军事用的MILNET。同时,局域网和广域网的产生和逢勃发展对Internet的进一步发展起了重要的作用。其中最引人注目的是美国国家科学基金会ASF(National Science Foundation)建立的NSFnet。NSF在全美国建立了按地区划分的计算机广域网并将这些地区网络和超级计算机中心互联起来。NFSnet于1990年6月彻底取代了ARPAnet而成为Internet的主干网。NSFnet对Internet的最大贡献是使Internet向全社会开放,而不象以前的那样仅供计算机研究人员和政府机构使用。1990年9月,由Merit,IBM和MCI公司联合建立了一个非盈利的组织先进网络科学公司ANS(Advanced Network &Science Inc.)。ANS的目的是建立一个全美范围的T3级主干网,它能以45Mbps的速率传送数据。到1991年底,NSFnet的全部主干网都与ANS提供的T3级主干网相联通。Internet的第二次飞跃归功于Internet的商业化,商业机构一踏入Internet这一陌生世界,很快发现了它在通信、资料检索、客户服务等方面的巨大潜力。于是世界各地的无数企业纷纷涌入Internet,带来了Internet发展史上的一个新的飞跃。1.2 目前的互联网现状Internet正以当初人们始料不及的惊人速度向前发展,今天的Internet已经从各个方面逐渐改变人们的工作和生活方式。人们可以随时从网上了解当天最新的天气信息、新闻动态和旅游信息,可看到当天的报纸和最新杂志,可以足不出户在家里炒股、网上购物、收发电子邮件,享受远程医疗和远程教育等等。Internet的意义并不在于它的规模,而在于它提供了一种全新的全球性的信息基础设施。当今世界正向知识经济时代迈进,信息产业已经发展成为世界发达国家的新的支柱产业,成为推动世界经济高速发展的新的源动力,并且广泛渗透到各个领域,特别是近几年来国际互联网络及其应用的发展,从根本上改变了人们的思想观念和生产生活方式,推动了各行各业的发展,并且成为知识经济时代的一个重要标志之一。1.3 企业电子商务的兴起进入20世纪九十年代后,Internet在商业上的应用其发展速度令人瞠目结舌。这个覆盖全球的网络以其无可比拟的优势向人们暗示着巨大的和潜在的商业利益。与传统的商业行为相比,它可提供资源丰富、迅速及时的商业信息,它的客户与市场遍及世界上每个角落,使很不起眼的小企业可以一下子变成“跨国公司”。成千上万的大小企业纷纷加入到Internet 这个神奇的淘金王国中。Internet正以惊人的速度发展,它的普及意味着企业网络时代的来临,意味着企业生存方式、组织方式、工作方式的变革。它正在为企业提供一种全新的市场概念,正在改写商业社会的规则,正在给各行各业的人们带来新的机会和挑战。未来的商业竞争就是信息的竞争,企业进入网络空间已是刻不容缓。1.4 企业为什么要建立网站很多企业由于缺乏技术人员等原因无法建立自己的网站,导致了在新的竞争形势中的失利。是否拥有自己的网站已经成为衡量一个企业综合素质的重要标志企业网站的具体作用: A.通过网站展示企业风采、传播企业文化、树立企业形象、提高企业知明度。B.通过网站可介绍企业的基本情况,使经销商和用户更多的知道您的存在。 C.通过网站可以宣传您的产品和服务的优势,让经销商和用户在比较中了解您、走近您、直到选择您。D.通过网站您可以利用电子信箱经济而又快捷地与外界进行各种信息沟。 E.通过网站您可以寻求合资与合作。第二章 LAMP架构介绍LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台,名字来源于每个程序的第一个字母。每个程序在所有权里都符合开放源代码标准:Linux是开放系统;Apache是最通用的网络服务器;MySQL是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。虽然这些开放源代码程序本身并不是专门设计成同另外几个程序一起工作的,但由于它们都是影响较大的开源软件,拥有很多共同特点,这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得更加普遍。并且它们为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了这些产品。Linux操作系统、Apache服务器、MySQL数据库和Perl、PHP或者 Python语言,这些产品共同组成了一个强大的Web应用程序平台。越来越多的供应商、用户和企业投资者日益认识到,经过LAMP单个组件的开源软件组成的平台用来构建以及运行各种商业应用和协作构建各种网络应用程序变为一种可能和实践,变得更加具有竞争力,更加吸引客户。LAMP无论是性能、质量还是价格都将成为企业、政府信息化所必须考虑的平台。下面分别对LAMP黄金组合中的各个部件做一些简单的介绍。2.1 Linux起源、特性及应用领域Linux操作系统核心最早是由芬兰的Linus Torvalds 1991年8月在芬兰赫尔辛基大学上学时发布的,后来经过众多世界顶尖的软件工程师的不断修改和完善,Linux得以在全球普及开来,在服务器领域及个人桌面版得到越来越多的应用,在嵌入式开发方面更是具有其它操作系统无可比拟的优势,并以每年100%的用户递增数量显示了Linux强大的力量。Linux的是一套免费的32位多人多工的操作系统,运行方式同UNIX系统很像,但Linux系统的稳定性、多工能力与网络功能已是许多商业操作系统无法比拟的,Linux还有一项最大的特色在于源代码完全公开,在符合GNU GPL(General Public License)的原则下,任何人皆可自由取得、散布、甚至修改源代码。与其它操作系统相比,Linux还具有以下特色:采用阶层式目录结构,文件归类清楚、容易管理支持多种文件系统,如Ext2FS,ISOFS以及Windows的文件系统FAT16,FAT32,NTFS等具有可移植性,系统核心只有小于10%的源代码采用汇编语言编写,其余均是采用C语言编写,因此具备高度移植性可与其它的操作系统如Windows98/2000/xp等并存于同一台计算机上2.2 Apache简介Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性(注1)被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,Perl/Python等解释器可被编译到服务器中。纵观Apache,它为我们的网络管理员提供了丰富多彩的功能,包括目录索引、目录别名、内容协商、可配置的HTTP错误报告、CGI程序的SetUID执行、子进程资源管理、服务器端图象映射、重写URL、URL拼写检查以及联机手册man等。也就是说,如果您在Linux Server上成功安装配置了Apache之后,您的计算机也将随着Apache的生效而摇身一变,成为一台名副其实的Web Server,这种变化的确是激动人心的。伴随着自由软件发展的强大动力,我们有理由相信Apache的未来是一片光明的。2.3 MySQL简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.4 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都能实现,而且支持几乎所有流行的数据库以及操作系统。第三章 需求分析在做某件事之前我们需要对要做的这件事的目标有一个规划,有了目标我们才不会偏离了事件的主方向,同样在开始写这个网站系统之前,我们需要对这个系统需要实现的功能性需求和非功能性需求做一个详细的计划,为以后的具体实施提供一个依据。3.1 功能性需求3.1.1 网站的基本信息设置(1) 对于网站名称应该可以在后台自定义,前台进行显示。(2) 网站的一些简单控制,如是否允许未注册人员下载网站资料,可以在后台动态设置。(3) 网站前台显示的时间格式也可以设置。(4) 前台新闻页每一页显示的文章数,文章标题的最大长度也可以设置。3.1.2 导航管理(1) 由于网站的多模块性,导致前台导航不一定能满足所有企业的需要,所以导航的高自定义性显得十分重要,导航栏要能根据企业自己的需求增加或修改。(2) 添加导航需要可以自定义 导航名称、链接地址、打开方式、显示顺序。(3) 如果有些企业存在论坛或其他网站,需要导航栏上有链接,这时导航栏需要能自定义链接地址。(4) 不仅能添加导航,同时也需要可以删除导航。3.1.3 图片管理(1) 做有关设计类的企业需要把自己设计的图片或图纸展示给浏览者观看,增加浏览者对企业的了解,以助于提高企业的业务量。(2) 图片需要可以从后台上传。(3) 要能对上传图片的格式做一些限制,只能够上传格式为 jpg、bmp、png、gif、jpeg类型的图片(此功能由程序控制,用户不能自定义控制)。(4) 要能对上传图片的大小做一定限制。(此功能由程序限制为2M,用户不能自定义控制)(5) 为了在前台更好的显示,程序要能根据图片生成对应的缩略图。(此功能由程序动态处理为 200 x 130 大小,用户不能自定义控制)3.1.4 图片分类(1) 图片分类需要能实现多级分类。(2) 要能对分类进行自定义排序、自定义模板。(3) 删除父级分类要能自动删除自己的子分类。(4) 要能方便的修改自己的父级分类。3.1.5 图片展示(1) 图片展示按组显示,一个图片组相当于一个序列。(2) 要能对这个系列图片的封面进行自定义,如果没有自定义,需要程序能自动选择一张作为封面图片。(3) 编辑图片组的时候可以对已有的图片做选择性的删除,同时也要能新添加新图片。(4) 删除图片组的时候应该自动删除图片组中的图片,节省网站空间。3.1.6 商品分类(1) 商品分类也需要能实现多级分类。(2) 要能对分类进行自定义排序、自定义模板。(3) 删除父级分类要能自动删除自己的子分类。(4) 要能方便的修改自己的父级分类。3.1.7 商品展示(1) 商品有简单介绍和详细介绍,简单介绍在商品列表中显示,详细介绍在商品内容页显示。(2) 商品需要有封面图片,给用户更直观的印象。(3) 商品详细介绍既要能添加图片,也要能写入文字说明。注:此系统不涉及到订单,仅仅只是简单的显示。3.2 非功能性需求3.2.1 后台界面(1) 网站后台要求结构明了,能够很容易找到想要操作的地方。(2) 后台所填选项要有清楚说明其作用,功能。(3) 每次提交操作之后要给出明确的提示,操作是否成功。3.2.2 前台页面(1) 界面要美观,但又不能太复杂,内容要突出。(2) 要能兼容目前主流的各种浏览器,在各个浏览器中不能有太大错位。(3) 页面使用 div+css 制作,适当使用 JavaScript 改善用户体验。第四章 概要设计概要设计是在需求分析的基础上由抽象到具体的过程。内容包括数据库设计和系统结构设计两大部分。主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理(技术)方案,为下一阶段的详细编码提供必要的技术资料,应符合系统性、灵活性、可靠性、经济性的要求。4.1 数据库设计4.1.1 数据库设计概述 数据库是数据管理的最新技术。十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。由于数据库具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。因此不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。目前,数据库已经成为现代信息系统不可分割的重要组成部分。数据库技术也是计算机领域中发展最快的技术之一。 数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。4.1.2 数据库需求分析 进行整个数据库设计必须准确了解与分析用户需求(包括数据和处理)。用户需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为最基本的需求分析做得是否充分与准确,决定了在其构建数据库的速度和质量。 用户的需求具体体现在各种信息的提供、存储、更新和查询方面,这就要求数据库结构能充分满足各种信息的输出与输入。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。以上面的需求分析作为设计依据,该企业网站应该有以下几个基本数据表:1、系统设置表:包括的网站的一些基本配置信息。2、导航表:包括导航的编号、名字、存储路径等。3、图片表:包括图片的编号、网站唯一名字、原始名字、原图路径、缩略图路径、上传时间。 4、图片分类表:包括图片分类编号、父级分类编号、名字、显示顺序等。5、图片展示表:包括图片展示的编号、所属分类的编号、图片组标题、浏览次数等。 6、商品分类表:包括商品分类编号、父级分类编号、名字、显示顺序等。3、商品表:包括商品的编号、名字、详细介绍等。4.1.3 数据库逻辑结构设计概念结构设计是数据库设计的核心。概念结构独立于数据库的逻辑结构,也独立与所使用的具体的数据库管理系统。概念模型(E-R模型)的组成元素有:实体、属性、联系,E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。模型中的实体相当于一个实体集、一个表。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。属性是实体的性质。用椭圆框表示,与实体之间用一条线相连,表的主码是关键属性,关键属性项加下划线。各子系统模块中主键相同的字段之间存在着相互关联的关系。在程序中实现对他们的完整性和一致性控制。E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图来表示。实体是用户工作环境中所涉及的事物,属性是对实体特征的描述。图4.1 导航E-R图图4.1显示了导航的所有属性,其中链接和外部链接二者之选其一,外部链接有着更高的优先级,存在外部链接,本身的链接(内部链接)将不起效。图4.2 图片E-R图 图4.2显示了图片的所有属性,hash名是图片在上传过程由程序自动设置的一个名字,这个名字保证了图片在网站中的唯一性。图4.3 商品E-R图 图4.3显示了商品的所有属性,其中发布人一般是管理员,封面图片是单独上传的。4.1.4 数据库物理结构设计在实际设计的时候需要考虑到一些系统的性能、负载问题,所以数据库的设计要求更加细致,下面对每个表进行详细的设计与说明。图4.4 系统基本设置表(settings) 图4.4 系统基本设置表只有两个字段,分别是variable和value,这个表存储的是网站的一些配置信息,比如存储网站名,在表中的存储格式为:variable:sitename,value:企业网站。图4.5 导航表(navgation) 图4.5导航表中的target字段的长度为1,这个字段只存在2个值,分别是0和1。图4.6 图片分类表(picturecategories) 图4.6 图片分类表利用父子id法进行无限分类,note是对分类的一些简单描述,只在后台显示。图4.7 图片表(pictures)图4.7 图片表存储的是图片展示中的所有图片和商品的封面图片,可以说网站的大部分图片都记录在图片表中统一管理。图4.8 图片展示表(picturescontent) 图4.8 图片展示表,这个表中的coverpic和content存储的是一个经过php序列化之后的图片信息数组,在显示的时候再经过反序列化。图4.9 商品分类表(producecategories) 图4.9 商品分类表跟图片分类表基本一样,采用父子id法进行无限分类。图4.10 商品基本信息表(produces) 图4.10 商品基本信息表是考虑到系统的性能,把商品的一些基本信息写在一个表中,由于这个表中存储的数据量不大,可以提高查询速度。图4.11 商品详细信息表(producecontent)图4.11 商品详细信息表存储了商品的详细内容,由于商品的详细内容既有文字,又有图片,况且商品的前台的商品列表中不显示详细信息,所以把商品的详细信息单独制表,当游客查看商品的详细信息的时候才查询商品详细信息表。4.2 系统结构设计4.2.1 网站后台结构图4.12 网站后台结构图 网站的后台功能设计必须完全的符合前台功能模块的要求,现在很多的大型CMS系统可以提供功能强大的专业网站后台,做为小型企业这种后台的实用性却不是很大,因为专业的后台管理程序功能太复杂,不利于企业内部工作人员进行管理。因此,专门开发一个小型网站后台管理系统在小型企业网站的设计中是非常必须的。4.2.2 网站前台结构图4.13 网站前台结构本部分前台结构很简单,仅仅涉及到了商品展示和图片展示,其中导航栏在每个页面都有显示。第五章 详细设计系统详细设计就是按照前面进行的种种分析,把各种需求使用程序语言实现的过程。这部分将会对某些关键技术做出详细的描述,包括代码段的讲解、运行原理的细述和显示效果的展示。5.1 系统公共文件核心代码5.1.1 前台核心控制文件整个系统的前台几乎依赖于common.inc.php文件,这个文件对系统正常运行所需要的一些常量进行定义,对变量进行初始化,引入其他一些重要文件。/定义PHP一些环境session_start();set_magic_quotes_runtime(0);/*- 定义一些常量 -*/define(IN_WEB, TRUE);define(WEB_ROOT, str_replace(, /, substr(dirname(_FILE_), 0, -7);define(MAGIC_QUOTES_GPC, get_magic_quotes_gpc();/*- 引入前台全局函数库 -*/require_once WEB_ROOT.include/global.fun.php;这个文件最开始第一行使用了session_start函数开启了session,后面只要引用这个文件的页面都可以对session进行操作;紧接着后面的set_magic_quotes_runtime(0)是关闭php的自动转义,后面的数据使用自定义函数转义;后面的定义常量是为了页面的安全性和一些地方使用的方便性;同时这个文件还对主要的函数文件进行引入,统一调度。/*- 初始化一些变量 -*/$dbhost = $dbuser = $dbpass = $dbname = $pconnect = $dbprefix = $dbcharset = $charset = ;$_CFG = array();/*- 对 URL 传值进行过滤 -*/foreach(array(_COOKIE, _POST, _GET) as $_request) foreach($_request as $_key = $_value) $_key0 != _ & $_key = daddslashes($_value); 这一段最开始对一些需要使用的变量进行了初始化,防止一些非法注入,紧接着后面一段又对URL传值进行了过滤,这个过程是先判断php是否有自动过滤,如果有,直接返回,如果没有则对一些特殊字符进行转义,保证数据安全。/*- 引入基本配置文件 -*/require_once WEB_ROOT.config.inc.php;require_once WEB_ROOT.include/db_mysql.class.php;/*- 实例化MySQL数据库类 -*/$DB = new DB_MySQL();$DB-connect($dbhost, $dbuser, $dbpass, $dbname, $pconnect);unset($dbhost, $dbuser, $dbpass, $dbname, $pconnect);/*- 获得本地时间 -*/$timestamp = gmtime();/*- 返回自身文件名常量 -*/$php_self = dhtmlspecialchars($_SERVERPHP_SELF ? $_SERVERPHP_SELF : $_SERVERSCRIPT_NAME);/*- 获取在线IP -*/$onlineip = getonlineip();/*- 读取缓存 -*/if (!include(WEB_ROOT.cache/settings.php) require_once(WEB_ROOT.include/cache.php);recache();exit(caches created successfully , please refresh the page!);/*- 系统URL -*/if (!$_CFGsiteurl) $_CFGsiteurl = http:/.$_SERVERHTTP_HOST.dirname($PHP_SELF)./; else $_CFGsiteurl = str_replace(array(host,index.php), array($_SERVERHTTP_HOST,), $_CFGsiteurl);if (substr($_CFGsiteurl, -1) != /) $_CFGsiteurl = $_CFGsiteurl./;/*- 定义前台模板地址 和 网站url地址 -*/$css_root = $_CFGsiteurl.templates/default/;$web_url = $_CFGsiteurl;这一段对以后页面经常使用的变量做了一定的操作之后进行了初始化赋值,后面的页面可以直接进行使用,提高代码利用率和程序的可读性。/*- 引入 smarty 配置文件 -*/require_once WEB_ROOT.include/config.smarty.php;include_once WEB_ROOT.smarty/Smarty.class.php;$template = new Smarty();$template-caching = $tpl_caching;$template-template_dir = WEB_ROOT.$tpl_template_dir;$template-compile_dir = WEB_ROOT.$tpl_compile_dir;$template-left_delimiter = $tpl_left_delimiter;$template-right_delimiter = $tpl_right_delimiter;这一段对smarty模板进行实例化,smarty模板在每个页面都会使用,这样做也是提高代码利用率。总的来说,common.inc.php文件就是实例化一些几乎每个页面都会使用的对象,初始化一些经常使用的变量,聚合一些函数文件和类文件,相当于整个程序的控制中心,总体调度程序运行。 5.1.2 前台公用函数库if(!defined(IN_WEB) exit(Access Denied); 页面最开始先判断是否存在IN_WEB常量,如果不存在就直接退出程序执行,这么做保证了文件的安全性,IN_WEB常量是在common.inc.php文件中定义的,也就是说这个函数文件只能被common.inc.php文件引用。function multi($num, $perpage, $curpage, $mpurl, $page = 10) $curpage = $curpage ? $curpage : 1;$multipage = ;$mpurl .= strpos($mpurl, ?) ? & : ?;$pages = 1;/总页数if($num $perpage) $offset = $page - 1;$pages = ceil($num / $perpage);if($page $pages) $from = 1;$to = $pages; else $from = $curpage - $offset;$to = $from + $page - 1;if($from 1) $to = $page;/$curpage + 1 - $from;$from = 1;if($to - $from $pages) $from = $pages - $page + 1;$to = $pages;$curpage = $curpage 1 ? 上一页 : ). ($curpage - $offset 1 & $pages $page ? 1 : ). ($curpage $page+1 ? . : );for($i = $from; $i = $to; $i+) $multipage .= $i = $curpage ? .$i. :.$i.;$multipage .= ($curpage $pages-1 ? . : ). ($to $pages ? .$pages. : ). ($curpage $pages ? 下一页 : ).($pages $page ? 转到: : );$multipage = $multipage ? .(共 .$pages. 页).$multipage. : ;return $multipage; 这个分页函数在使用的时候只需要传给它4个值,分别是:数据总数、每页显示数、当前页数、url地址,此时这个函数会输出一个分页的html代码,只用在程序中输出就可以,样式写在页面所使用的样式文件里。示例代码如下:以上几行简单的代码(css样式文件省略)将可以产生一个如下图所示的分页。图5.1 分页效果5.1.3 数据库类class DB_MySQL var $querycount = 0;/连接数据库function connect($dbhost, $dbuser, $dbpass, $dbname, $pconnect=0) if($pconnect) if(!mysql_pconnect($dbhost, $dbuser, $dbpass) $this-halt(数据库链接失败); else if(!m

温馨提示

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

评论

0/150

提交评论