基于PHP的旅游网站的设计与实现论文

某某自助游网站的设计与实现

摘 要
目前旅游业是国家的战略性支柱产业,是十分具有发展潜力的朝阳产业和绿色产业。呼和浩特是一个有不同民族“大杂居,小聚居”的地方,所以对于发展旅游业还是比较有优势的。现在随着国内经济的增长和科技的发展,以及人们日常生活方式的改变,网络越来越成为人们高效、快速选择旅游目的地的重要方式。目前市场上还没有专门针对呼和浩特游玩的网站,对于喜欢旅游的人来说,一个详细的旅游介绍是非常重要的。在当下的互联网时代,为了更加方便的为游客提供详细的景区信息以及更好的宣传呼和浩特,有一个完善且全面的信息宣传系统是尤为重要的。
针对目前世界上流行的大量软件和开发工具进行分析其优缺点。软、硬件能否满足需要,决定本系统采用基于B/S架构,开源框架ThinkPHP,MVC开发模式。数据库系统采的是MySQL,它能够处理大量数据,是一种关系型数据库管理系统,具有运行速度快,灵活性高,同时在一定程度上能保持数据的完整性、安全性。使用PHP开发网站具有成本低、速度快等优势,而且我对这项技术比较熟悉,不需要花费额外时间再去学习,因此本系统的开发平台已经相对成熟可行。
开发了呼和浩特自助游网站,希望可以帮助游客查询了解呼和浩特的景区,网站提供了各景区的精美图片,可以让游客提前感受秀美的风景。在互联网时代,更需要有一个完善的旅游资讯宣传平台,给游客提供便利并且更好地让呼和浩特的文化得到广泛的传播。比如热门景区分析推荐、景区地区分布、各种类型的景区等,为游客和各相关的行业提供全面详细的旅游信息。论文分别论述了基于ThinkPHP框架完成的呼和浩特自助旅游网的设计与实现。

关键词:旅游网,ThinkPHP,MySQL
Design and Implementation of Huhhot Independent Travel Website
Abstract
At present, tourism is a strategic pillar industry of the country, and it is a sunrise industry and a green industry with great potential for development. Hohhot is a place with different ethnic groups, “Big mixing-up, small inhabit”, so it is advantageous to develop tourism. With the growth of domestic economy and the development of science and technology, and the changes of the living ways. The Internet has become an important way for people to choose the destination of tourism efficiently and quickly. At present, there is no website for Hohhot. A detailed travel introduction is very important for those who like to travel. At the present age of the Internet, for more convenient to visitors to provide detailed information of the scenic spot and better propaganda of Hohhot. It’s more important to has a perfect and comprehensive information publicity system.
Analyze the advantages and disadvantages of a large number of software and development tools in the world. The requirements of software and hardware are rest with B/S architecture adopted, open source framework ThinkPHP and MVC development mode. Open source framework ThinkPHP and MVC development mode. Mining is the MySQL database system it can handle large amounts of data, is a relational database management system, has quick speed, high flexibility, at the same time, to some extent can maintain data integrity and security. Using PHP website has the advantage of low cost and fast speed, and this technology is familiar with, do not need to spend extra time to study, so the development platform of this system is mature and feasible.
I developed the Hohhot self-help travel network, the hope can help tourists query understand huhhot area, site offers a photo of each scenic spot can let visitors feel the beautiful scenery in advance. In the Internet era, it is necessary to have a perfect tourism information platform to facilitate tourists and make the scenic spots of Hohhot more widely spread. For example, popular scenic spot analysis and recommendation, scenic spot area distribution, various types of scenic spots, etc. provide comprehensive and detailed tourism information for tourists and related industries.This paper discusses the design and implementation of Hohhot self-service travel net based on PHP+MySQL technology and ThinkPHP framework.

Key words: Travel,ThinkPHP,MySQL
目 录
摘 要 I
第1章 绪 论 1
1.1论文研究背景意义 1
1.2国内外现状 1
1.3论文研究主要内容 2
第2章 关键技术介绍 3
2.1 网页前端技术 3
2.2网页后端技术 3
第3章 系统分析 5
3.1 构架概述 5
3.1.1 管理员功能 5
3.1.2 用户功能 6
3.2 业务模式 7
3.3 数据模型 8
3.4 系统开发环境 9
3.5 系统任务的可行性分析 9
第4章 系统设计 11
4.1 设计指导思想和原则 11
4.2 构架概述 11
4.3 数据库设计 11
4.4 系统设计目标 15
第5章 系统实现 17
5.1 用户实现 17
5.2 管理员实现 21
5.3 代码设计 23
5.3.1 前台主要代码 23
5.3.2 后台主要代码 23
第6章 系统测试 26
6.1 测试用例 26
6.1.1 用户测试 26
6.1.2 管理员测试 28
6.2 测试结论 29
第7章 结 论 30
参考文献 31
致 谢 32

第1章 绪 论

随着国内经济的增长和人们的交流方式的改变,互联网成为了我们日常生活中必不可少的一部分。旅游是人类精神享受的过程,所以旅游景区的选择变得极为重要。而现在,选择在互联网上旅行的地方和方式已经变得更受欢迎,而且还能让住在城市的快节奏的人在休闲时间可以随时随地了解旅游信息。旅游网站和旅游企业相比前者更具优势。传统旅游企业不像旅游网站信息更丰富,更新速度及时,了解速度更快,更合理的操作方式,游客可以通过网站的文字,图片,评论来了解景区详细信息。由于旅游网站可以打破地域限制,可以以最经济的方式将各种旅游资源最大限度地融合在一起,同时无店铺经营也有助于降低成本,使旅游资源的所有者和消费者受益[1]。呼和浩特自助游网展示呼和浩特旅游信息的最新信息,帮助旅客做出合理选择,当越来越多的商业旅游的出现,促使旅游消费迅速增加时,我们可以选择使用免费旅游网站,由用户自主选择游玩路线,无额外消费。另外,用户可以查询周围的景区,以及各种用户发布的游记,作为旅游参考,用户可以通过比较不同地方之间的差异来确定他们想去哪里并做出最佳选择,该网站还提供了大量精美的图片,让用户可以提前感受到景区的魅力[2]。
本系统的主要功能是为管理者提供简单明了的管理界面,可以随时了解游客的要求和信息,让游客合理安排旅游行程。为访客提供一个清爽的界面,选择他们想要旅行的地方,以便放松身心享受旅游。
1.1论文研究背景意义
随着人们生活水平的不断提高,互联网的迅猛发展,人们不再满足于基本的日常生活需求,对于精神世界的需求也是日益增长。通过调查发现,现在的人们每年都会外出度假,而内蒙古呼和浩特就是一个不错的选择。但是现在普遍的旅游网站都比较杂乱,广告繁多,而我的这款网站会给用户一种简洁、明了和目的性很强的浏览效果。
呼和浩特自助游网是一款电脑端的旅游推荐网站,主要目的是为用户提供呼和浩特最有价值的旅游景区。由于网络已经覆盖全球,信息量大而独具优势。对于消费者来说,他们可以随时随地自由地查询呼和浩特各个地方的旅游景区,消费者无需亲临实体店,只要坐在电脑前,开机上网即可查询到自己想要的旅游地点,而且消费者的挑选余地也大多了,检索也很方便。呼和浩特自助游网站可以节省消费者大量时间,这对于那些没有时间或者旅行社离家比较远的消费者来说,更具有实际意义。旅游作为一种商品被运作的时候,我们可以直观的对此商品的图片进行浏览。而且还可以直接提出疑问解答。
1.2国内外现状
电商是消息流,业务流程,资金流的整合,其中旅游业是最适合电商的行业之一,通过先进的互联网技术,改善各类信息的交换和沟通,提高旅游业务的业务流程,所以使电商对旅游业的飞速发展产生了很大的影响。发达国家已经在这些领域取得了很好的成绩。
随着人们消费的升级,国人对于旅游消费的热度持续加大,自2006年起,中国旅游人数逐年攀升,2017年全面进入了大旅游消费时代。日益庞大的中国中产阶级对高品质的生活方式与旅行体验的需求为市场带来新的机遇和变化,旅游方式也更多样化。散客化的趋势进一步明显,按照整个旅行社的接待额有牌照的旅行社在总旅游人次当中小于5%,散客化的趋向非常明显。所以一个详细的景区介绍更加方便了游客的出游。
而呼和浩特自助游网相比去哪儿网和携程网等等网站,对于和呼和浩特这个地区有着更加全面的值得游玩的景区和更加详尽的景区介绍,方便每位想要到呼和浩特游玩的旅客去选择自己要去的景区,同时方便游客快速的检索离自己最近的景区和自己想要去的类型景区。所以呼和浩特自助游网就是很不错的作为呼和浩特对外宣传的网站。
1.3论文研究主要内容
呼和浩特自助游网是一个旅游信息综合网,您可以查询旅游目的地及相关信息,有很多热心用户发的游记,帮助用户更加详细地了解景区的情况。本网站使用了多种网站搭建技术,前端页面使用了HTML、DIV+CSS、JavaScript、Bootstrap等技术,可以实现页面显示,信息提交,网页风格设计和客户端验证,以及各种后端技术:PHP、MySQL、ThinkPHP等,完成网站设计和数据库信息的增删改查。

第2章 关键技术介绍
2.1 网页前端技术
有很多技术用于前端的网页设计,呼和浩特自助游网使用HTML来显示,DIV + CSS、Bootstrap用于规划布局和网页风格的设计,JavaScript用于实现交互式页面,使用这些技术可以帮助开发者更方便快捷地实现网站和网页设计的建设。
(1)HTML
HTML是当前在网络上使用最普遍的语言。HTML文本是由HTML命令组成的描述性文本,HTML标签能够描述文本、图像、音乐、视频、表格、超链接等。它的主要作用是实现网站页面显示,包括显示页面的主页,信息详情页面,提交到页面的信息和页面的结果。
(2)DIV+CSS
DIV + CSS是页面布局时使用的方法。使用时代码精简,大大提高了搜索引擎的爬行效率以及高效性。它能分离页面的数据和表现形式,所以重构页面时修改方便。同时网页的加载速度得到很大的提高,用户的体验性也会大大增加。
(3)JavaScript
JavaScript是一种脚本语言。它是有规律地重复的HTML文段简短化,减少下载时间。主要功能是实现页面的交互行为,可以及时响应客户端表单内容的提交,减轻了服务器端的负担,使客户端和服务器之间的交互更加顺畅。
(4)Bootstrap
Bootstrap是Twitter推出的一个用于前端开发的开源工具包。是一个做网页的框架(目前最流行的Web前端框架),只需要写HTML标签调用它的类就可以很快速的做一个高大上的网页,不用担心兼容问题,而且支持自适应,不用担心兼容问题,是一个很不错的框架。
2.2网页后端技术
关于后台技术,我选择了目前应用比较广泛的PHP语言和大众化的数据库技术MySQL以及ThinkPHP框架。PHP+MySQL技术一起使用,具有良好的兼容性、良好的安全性、技术开源免费、执行速度快、效率高等优点。
(1)PHP
PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl特性,这有利于学习,应用广泛,主要用于Web开发。PHP的独特语法混合了C、Java、Perl和PHP自己的语法。它执行起动态网页比CGI或Perl更快。 PHP也可以执行编译后的代码,编译器可以实现加密和优化代码运行代码更快,在此网站中主要使用它编写后台代码。
(2)MySQL
MySQL是一个关系型数据库管理系统,是最受欢迎的关系数据库管理系统之一,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大型仓库上,从而提高了速度和增加了灵活性。MySQL由于体积小、速度快、总拥有成本低,特别是开源这个特点,中小型网站一般都选择了MySQL作为网站数据库。在本网站主要用于数据库的操作,包括建立网站和数据库连接,后台发送SQL语句的操作并返回其结果。
(3)ThinkPHP
ThinkPHP是一个快速,兼容和简单的轻量级PHP开发框架,使用面向对象的开发架构和MVC模型,结合Struts的思维和TagLib、RoR的ORM映射和ActiveRecord模式。支持Windows / Unix / Linux等服务器环境,支持MySql、PgSQL、Sqlite等多种数据库和PDO扩展。作为一个整体开发解决方案,ThinkPHP可以解决应用程序开发的大部分需求,并为跨版本,跨平台和跨数据库迁移更方便,非常适合本网站的开发。

第3章 系统分析
3.1 构架概述
根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示
基于PHP的旅游网站的设计与实现论文_第1张图片

                         图3.1 系统功能模块图

3.1.1 管理员功能
当登录后台管理系统时需要输入用户名、密码以及验证码,通过系统认证(包括用户名和密码验证和用户权限验证)来执行此操作。管理员进入后台管理系统页面后,可以对整个系统进行管理操作。
(1)用户管理模块
该模块实现管理员对用户信息的管理,对不符合规定的用户进行删除操作。
(2)景区管理模块
该模块主要实现管理员对景区的信息进行管理,包括查看已有的景区信息,添加新的景区信息、修改已有的景区信息以及删除已有的景区信息。
(3)类型管理模块
该模块主要实现管理员对类型信息进行管理,包括查看已有的类型信息,添加新的类型信息、修改已有的类型信息以及删除已有的类型信息。
(4)地区管理模块
该模块主要实现管理员对地区信息进行管理,包括查看已有的地区信息,添加新的地区信息、修改已有的地区信息以及删除已有的地区信息。
(5)游记管理模块
该模块主要实现管理员对用户发表的游记信息进行管理,主要包括查看已发表的游记信息和删除已有的违规、不合理的游记信息。
(6)游记评论模块
该模块主要实现管理员对用户发表的游记评论进行管理,主要包括查看已发表的游记评论和删除已有的违规、不合理的游记评论信息。
(7)景区评论模块
该模块主要实现管理员对用户发表的景区评论进行管理,主要包括查看已发表的景区评论和删除已有的违规、不合理的景区评论信息。
(8)广告管理模块
该模块主要实现管理员对广告信息进行管理,包括查看已有的广告信息,添加新的广告信息和删除已有的广告信息。
3.1.2 用户功能
根据需求分析,用户功能将划分为以下主要功能模块,主要包括用户注册、用户登陆、游记、评论、景区信息、游记发表、查看游记、个人信息等。
(1)注册
该模块主要实现用户的注册,以方便用户使用注册用户使用的功能。
(2)登录
该模块主要实现用户的登录,让用户可以对景区进行评论、发表游记、发表游记评论、收藏游记和游记点赞功能。
(3)景区信息模块
实现的主要功能包括查看站内推荐、景区类型的分类、景区地区的分类等信息,还可以点击景区对对应景区的详细信息进行查看。
(4)游记模块
主要是用户发表游玩日记,用于记录自己的生活,发表自己的感想,展现旅行的乐趣,让其它很多游客阅读后得到他所需要的提示、经验、攻略等等信息。同时可以浏览其他游客发表的游记内容,可以点赞、评论和收藏。
(5)评论模块
该模块有两个评论模块。一个评论模块是景区评论模块,该模块主要是方便用户之间进行沟通和交流,用户可以发表自己的看法也可以浏览其他用户的评论。为了使用户通过其他渠道进一步得到景区的信息,掌握各方面的反馈信息,通过此模块,可以发表评论、查看以往的评论信息以及回复评论。评论信息包括:评论的用户、评论时间及评论内容。另一个模块是游记评论模块,该模块主要是用户可以浏览其它用户对该游记发表的看法,以及用户对游记进行发表自己的见解。
(6)个人信息模块
用户可以点击用户名进入用户个人中心模块,用户可以浏览用户自己发表的游记以及浏览用户收藏过的游记,并且可以修改用户自己的头像和用户名。
(7)广告模块
用户点击可以点击首页轮播图进入广告模块,用户可以浏览当前管理员发布的最新资讯,可能是广告或是新闻。
3.2 业务模式
根据分析以下是呼和浩特自助旅游网的业务流程图,如图3.2所示。
基于PHP的旅游网站的设计与实现论文_第2张图片

                            图3.2 用户业务流程图

基于PHP的旅游网站的设计与实现论文_第3张图片

                                                                                     图3.3 管理员业务流程图

3.3 数据模型
根据对本网站的分析得出此E-R模型,如图3.4所示。
基于PHP的旅游网站的设计与实现论文_第4张图片

图3.4 E-R图
3.4 系统开发环境
系统环境:Windows10
开发工具:WAMP :5.3.4/Sublime Text3/Chrome/Navicat 11.0.9-企业版
3.5 系统任务的可行性分析
(1)技术可行性
针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点,软、硬件能否满足需要。本系统基于B/S架构,采用开源框架ThinkPHP,MVC开发模式,数据库系统采用MySQL,它能够处理大量数据,同时保持数据的完整性、安全性。使用PHP开发网站具有成本低、速度快等优势,而且对技术比较熟悉,不需要花费额外时间学习,因此本系统的开发平台已成熟可行[3]。
(2)经济可行性
PHP不受平台束缚,可以在Linux等众多不同的操作系统中架设基于PHP的WEB器。采用WAMP这种开源免费的框架结构可以为本网站经营者节省很大一笔开支。
(3)用户使用可行性
本系统是自主旅游信息管理系统,系统具有强大的景区信息管理、 游记管理、用户管理等功能;具备完整的旅游浏览网站功能、结构简单、容易使用,操作简单;登录到后台,在线设置轻松设置各项功能及添加,适合于小型企业及个人经营管理。

第4章 系统设计
4.1 设计指导思想和原则
网站主要是实现对旅游信息的管理,主要针对用户信息、景区信息、游记、评论的管理,还可以对用户的登录和注册进行控制。该系统以WAMP/ Sublime为主要开发工具对程序进行编写,结合MySQL数据库、Navicat数据库表管理软件等相关工具,开发了呼和浩特自助游网这一旅游信息网站。
4.2 构架概述
本系统选择了B/S构架进行开发。B/S是指浏览器和服务器结构,在这样的结构下,用户的使用界面是通过浏览器来访问的,只有一小部分的事务逻辑是在网站前端实现的,这样就大大减小了客户端的任务量,而且无需开发客户端软件,为用户的访问提供了方便。根据B/S架构的结构特点得出下图结果,如图4.1所示。
基于PHP的旅游网站的设计与实现论文_第5张图片

图4.1 架构图
4.3 数据库设计
数据库设计是将真实模型和现实世界的需求转化为数据库模型的过程。数据库及其应用的性能是基于数据库设计的良好基础,数据库数据是所有操作的基础,如果数据库设计不好或者不合理的话,那么用于提高数据库性能的所有其他方法都是有限的。数据库设计的关键是如何使数据库的设计能够合理并有效地存储用户的数据,方便用户使用的数据。
(1) 数据库的完整性和安全性
数据库的完整性指的是数据的正确性与兼容性。数据的约束是语义,并作为模式的一部分存储在数据库中。系统定义表和表之间的关系以及表中的字段属性约束,以帮助实现的完整性。数据库安全是指数据库的保护,防止非法使用数据导致的泄漏、更改或损坏。在数据库的系统中,数据存储大量的性,可以为许多用户直接共享,是一种有价值的信息资源,系统的安全保护更为重要。在系统中,用户注册的密码是加密的,用户必须输入用户名和密码,并通过数据库验证,同时用户权限验证非法用户和未经授权的用户防止未经授权访问该站点并进行操作确保本网站的安全。
(2)数据库物理数据模型
物理数据模型提供了系统初始设计所需的基本元素和元素之间的连带关系,并提供了一种在更高级别描述存储结构和访问机制的方法,描述了如何在计算机中实现数据存储和如何表达记录结构等信息。通过表格的形式描述数据库中的表以及表中的字段等信息,通过对景区的内容确定景区信息表,如表4.1所示。
表4.1 travels表
字段名 名称 数据类型 强制/主键
travel_id 景区编号 int AUTO_INCREMENT/PRIMARY
travel_name 景区名称 varchar(100) not null
travel_about 大家印象 text not null
travel_info 景区介绍 text not null
travel_price 景区门票 varchar(100) not null
travel_photo1 景区图片 varchar(100) not null
travel_photo2 景区图片 varchar(100) null
travel_photo3 景区图片 varchar(100) null
travel_discounts 说明 text not null
travel_sttime 开放时间 time not null
travel_edtime 关闭时间 time not null
travel_phone 联系电话 varchar(50) not null
travel_address 景区地址 varchar(100) not null
travel_hint 点击量 int not null
type_id 所属类型 int not null
place_id 所属地区 int not null

根据地区的具体内容确定地区信息表,如表4.2所示。
表4.2 places表
字段名 名称 数据类型 强制/主键
place_id 地区编号 int AUTO_INCREMENT/PRIMARY
place_name 地区名称 varchar(50) not null

根据类型的具体内容确定类型信息表,如表4.3示。
表4.3 types表
字段名 名称 数据类型 强制/主键
type_id 类型编号 int AUTO_INCREMENT/PRIMARY
type_name 类型名称 varchar(50) not null

根据游记的具体内容确定游记信息表,如表4.4示。
表4.4 articles表
字段名 名称 数据类型 强制/主键
article_id 游记编号 int AUTO_INCREMENT/PRIMARY
article_name 游记名称 varchar(50) not null
article_info 游记简介 text not null
article_photo1 游记图片 varchar(100) not null
article_photo2 游记图片 varchar(100) null
article_photo3 游记图片 varchar(100) null
article_time 游记发表时间 date not null
user_id 用户 int not null
article_hint 游记点击量 int not null
article_zan 赞 int not null

根据广告的具体内容确定广告信息表,如表4.5示。
表4.5 adverts表
字段名 名称 数据类型 强制/主键
advert_id 广告编号 int AUTO_INCREMENT/PRIMARY
advert_name 广告名称 varchar(50) not null
advert_info 广告简介 text not null
advert_photo 广告图片 varchar(100) not null
advert_time 发布时间 date not null

根据收藏的具体内容确定收藏信息表,如表4.6所示。

表4.6 collects表
字段名 名称 数据类型 强制/主键
collect_id 收藏编号 int AUTO_INCREMENT/PRIMARY
collect_user 收藏用户 int not null
collect_article 收藏文章 int not null

根据景区评论的具体内容确定景区评论信息表,如表4.7示。
表4.7 comments表
字段名 名称 数据类型 强制/主键
comment_id 评论编号 int AUTO_INCREMENT/PRIMARY
comment_to 评论回复人 int not null
comment_from 评论人 int not null
comment_text 评论内容 text not null
comment_pid 评论景区 int not null
comment_data 评论时间 datetime not null

根据游记评论的具体内容确定游记评论信息表,如表4. 8示
表4. 8 comment表
字段名 名称 数据类型 强制/主键
acomment_id 评论编号 int AUTO_INCREMENT/PRIMARY
acomment_from 评论人 int not null
acomment_text 评论内容 text not null
acomment_bid 评论游记 int not null
acomment_data 评论时间 datetime not null

根据用户的具体内容确定用户信息表,如表4. 9示。
表4.9 users表
字段名 名称 数据类型 强制/主键
user_id 用户编号 int AUTO_INCREMENT/PRIMARY
user_name 用户名称 varchar(50) not null
telephone 电话 int not null
user_pass 登录密码 int not null
user_photo 用户头像 varchar(50) not null

根据管理员的具体内容确定管理员信息表,如表4. 10表。
表4.10 admin表
字段名 名称 数据类型 强制/主键
admin_id 管理员编号 int AUTO_INCREMENT/PRIMARY
admin_name 管理员名称 varchar(50) not null
admin_pass 登录密码 int not null

4.4 系统设计目标
随着生活的改善,人们开始关注旅游信息。本网站的总体任务是实现各种信息标准化、自动化和系统化。系统完成后应达到以下几个方面的要求。
(1)信息的完整性
本系统的基础是数据信息,只有正确的信息才能确保开发人员做出正确的决策。因此,软件设计必须加强信息的完整性,使用值约束、缺省等方法来保证信息的完整性。 在整个系统中,数据安全,功能,基本信息维护等方面应得到充分保护[5]。
(2)实用性
本系统是一个实际性很强的应用和有高度针对性的软件系统,将取代手动低效的工作,所以在系统构建的同时必须考虑到网站后台操作人员使用习惯,系统界面简单,易于管理,好维护,从应用需求来看,主要考虑到整体系统的性能和综合功能。鉴于未来实际处理流量和系统升级的需求,做到预留接口充分考虑到系统的可扩展性和兼容性,使系统正常使用和日常维护工作更容易[5]。
(3)高效稳定性
系统运行速度快,效率高,有效防止各种人为操作错误导致数据丢失,维护数据完整性。软件开发工具和数据库必须要成熟稳定,经过长时间的验证才能确保系统平台的可靠性和安全性。
(4)灵活性
系统在设计之初就要考虑到灵活性,实现在完成基本功能的基础上,做到单个模块既可以独立使用,又可以互相操作。
(5)安全性
用户进入系统后,应先进行严格的身份验证,根据进入系统权限级别,使用系统的功能和数据。防止信息泄漏和非法入侵。
(6)可扩展性
每个系统都是在不断的发展和不断的进行完善,系统开发完成后,系统必须能确保用户有需求时能轻松地添加和删除一些功能或者模块,及时解决日常遇到的问题,同时和系统其他模块保持相同的风格,不改变后台管理人员习惯的使用,使软件具有很好的可扩展性。系统要设计合理,技术先进,确保整个系统的不断发展。
(7)可操作性
系统的界面设计应该能够满足日常办公操作的需要,界面清晰,风格一致,功能完善,管理人员操作维护方便等特点。
第5章 系统实现
5.1 用户实现
用户的实现主要包括首页、景区、游记、评论、登录、注册等功能。
(1)首页页面
首页的设计主要包括一个头部导航栏,展示了网站的主要景区分布地区。然后是一个景区类型导航栏,展示了网站的主要景区类型。中间部分是轮播图部分,主要展示当前的热门新闻、广告等。下方主要是一个景区推荐区域,展示了按照人们点击量的景区推荐,让用户对各种景区有一个直观的了解,点击景区图片或者景区名称可以跳到相关的详细信息页面,让用户可以直接找到想去的景区的详细介绍,再往下是版权信息。首页的实现,如图5.1所示。
基于PHP的旅游网站的设计与实现论文_第6张图片

图5.1 首页页面
(2)景区页面
景区的设计主要是对各个景区的展现,然后用户可以查看景区图片,然后就可以看到更详细的景区介绍,有包括景区名称、景区简介、景区地址、景区类型、景区票价、景区开放时间段以及用户对该景区的评论信息等信息。景区的实现,如图5.2所示。
基于PHP的旅游网站的设计与实现论文_第7张图片

图5.2 景区页面
(3) 游记页面
游记的设计主要是对各种有特色的景区和网站没有收录的游玩之地,首先展示出游记的列表,也有推荐浏览的游记列表。可以看到游记的相关信息,其中不乏精美的景色图片,这也是能够吸引游客的一个方面。用户还可以发表游记,记录自己的美好生活,向别人分享旅行的乐趣,同时也可以收藏游记和评论游记。
游记的实现,如图5.3所示。
基于PHP的旅游网站的设计与实现论文_第8张图片

图5.3 游记页面
用户发表游记的实现,如图5.4所示。
基于PHP的旅游网站的设计与实现论文_第9张图片

图5.4 发表游记页面
(4)登录注册
登录和注册功能是网站都具有的必要功能,可以供普通用户注册成为注册用户,登录后可以发表游记、评论景区、评论游记,点赞游记、收藏游记。注册的实现,如图5.5所示。
基于PHP的旅游网站的设计与实现论文_第10张图片

图5.5 注册页面
登录的实现,如图5.6所示。
基于PHP的旅游网站的设计与实现论文_第11张图片

图5.6 登录
(5)地区景区页面
地区景区的设计主要是对各个景区进行按地区分类展现,然后用户可以轻松了解到自己要去的地区有哪些值得有玩的景区,所以将景区进行了地区划分。地区景区的实现,如图5.7所示。
基于PHP的旅游网站的设计与实现论文_第12张图片

图5.7 地区景区页面
(6)类型景区页面
类型景区的设计主要是对各个景区进行按类型分类展现,然后用户可以轻松了解到自己喜欢的类型景区在哪,所以将景区进行了按类型分类。类型景区的实现,如图5.8所示。

基于PHP的旅游网站的设计与实现论文_第13张图片

图5.8 类型景区页面

5.2 管理员实现
(1)用户管理
管理员可以查询用户的信息,并且能够对用户进行管理,比如用户做了违反法律法规的事情,管理员有责任和义务把该用户删除掉,维护网站的和谐与安定。用户管理的实现,如图5.9所示。
基于PHP的旅游网站的设计与实现论文_第14张图片

图5.9 用户管理
(2) 景区管理
景区管理可以供管理员查看、修改和删除景区的信息,并能定期增添新的景区信息。景区列表管理的实现,如图5.10所示。

图5.10 景区列表管理
景区信息添加管理的实现,如图5.11所示。

图5.11 景区信息添加管理
景区信息修改管理的实现,如图5.12所示。

图5.12 景区信息修改管理
(3) 游记管理
游记管理是管理用户发表的游记,主要任务就是对不符合规范的游记进行删除。游记管理的实现,如图5.13所示。

图5.13 游记管理
(4) 评论管理
评论管理主要是对用户发表的评论进行管理,主要是删除一些不友好的言论,维护网站内容的健康和正确。景区评论管理的实现,如图5.14所示。

图5.14 景区评论管理
游记评论管理的实现,如图5.15所示。

图5.15 游记评论管理
(5) 地区管理
地区管理可以供管理员查看、修改和删除地区的信息,并能定期增添新的地区信息。地区列表管理的实现,如图5.16所示。
基于PHP的旅游网站的设计与实现论文_第15张图片

图5.16 地区管理
(6) 类型管理
类型管理可以供管理员查看、修改和删除类型的信息,并能定期增添新的类型信息。类型列表管理的实现,如图5.17所示。
基于PHP的旅游网站的设计与实现论文_第16张图片

图5.17 类型管理
5.3 代码设计
5.3.1 前台主要代码
本段代码是用户提交的表单信息、以及显示景区详情页面用户评论景区以及回复评论的前台代码。
//发表评论

{$comment.user_name}于{$comment.comment_data}评论 回复

{$comment.comment_text}

5.3.2 后台主要代码 后台的主要作用就是接受前台用户提交的信息,并且处理前台的信息,其中包括对数据库的增删改查操作,还有各种PHP类的编写,主要是对数据的加工,还有对数据库的各种SQL语句进行处理,以下是后台实现部分的代码。 public function travelinfo($id){ //申明一个travelinfo的方法 if(IS_POST){ //判断提交。如果提交执行以下方法 $uid = $_SESSION['user_id']; //存储登录了的user_id $data['comment_from'] = $uid; // 评论的人 $data['comment_to'] = $id; // 给谁的评论的内容 $data['comment_text'] = I('comment_text');// 评论内容 $data['comment_pid'] = I('comment_pid'); //类似于travel_id $d=time(); //时间戳 $data['comment_data'] = date("Y-m-d h:i:s", $d);// 时间戳的时间格式 if($uid == null){ // 如果没有得到uid也就是没有登录 $this->error('请先登录'); //执行“请先登录” }else{ //否者 $commentsModel=M('comments'); //实例化comments $addresult=$commentsModel->add($data); // 将附在data的值写入用户数据数据库 if (false !== $addresult) //如果addresult这个函数执行成功 { $this->success('添加成功!'); //显示添加成功 }else{ $this->error('数据错误'); //添加失败 } } }else{ $Pwhere['a.comment_to'] = $id; //查询显示谁评论的 $Pwhere['comment_pid'] = 0; //评论的哪条 $comment = M() //实例化 ->table('comments a') //comments ->where($Pwhere) //查询条件 ->join('users b on a.comment_from = b.user_id') //user—id就是 comment_from ->limit(3) //限制显示3条 ->order('comment_data desc') //按时间倒序排序 ->select(); //查询 foreach ($comment as $i => $value) { //循环显示 $Rwhere['comment_to'] = $id; //给谁评论的 $Rwhere['comment_pid'] = $value['comment_id']; //回复了谁的评论 $comment[$i]['return'] = M() //把pwhere赋值在return这个变量里 ->table('comments a') //comments ->where($Rwhere) //按pwhere ->join('users b on a.comment_from = b.user_id')// 用户回复谁的 ->limit(3) //限制显示3条 ->order('comment_data') //按时间显示 ->select(); //查询 }

第6章 系统测试
系统测试,是将已经初步做好的软件,计算机硬件,外部设备,网络连接等连接在一起,系统进行各种组装测试和验证测试,这是为整个产品系统进行测试。在软件系统的开发过程中,需要面对复杂的问题,因此,在软件生命周期的每个阶段都必然会产生错误。测试的目的是“旨在找到错误的程序的执行过程”,一个好的测试用例是发现未被发现过的错误。目的是验证软件系统是否完成符合设计要求的程序,找出与设计不匹配的地方,然后提出更完善的解决方案。
6.1 测试用例
6.1.1 用户测试
注册和登录相关测试用例,如表6.1所示。
表6.1 注册和登录测试用例表
测试用例ID 场景 测试步骤 预期结果
TC1 用户注册 进入首页点击登录按钮进入登录页面,点击没有账号立即注册,进入注册页面,输入用户名、密码和手机号信息,点击提交 注册成功
TC2 用户注册 进入首页点击登录按钮进入登录页面,点击没有账号立即注册,进入注册页面,输入已存在的用户名,点击提交 注册失败
TC3 用户登录 点击登录按钮进入登录页面,输入正确的帐号和密码,点击登录 登录成功并跳转到首页
TC4 用户登录 点击登录按钮进入登录页面,输入错误的帐号或密码,点击登录 登录失败
TC5 用户登录 点击登录按钮进入登录页面,输入不存在的帐号或密码,点击登录 登录失败

景区信息的测试用例,如表6.2所示。
表6.2 景区信息和景区查询测试用例表
测试用例ID 场景 测试步骤 预期结果
TC6 景区列表 进入首页自动显示景区列表 完整显示景区图片和和景区名称信息
TC7 景区分类 进入首页点击景区类型,进入景区类型景区列表 显示正确景区类型的景区信息列表
TC8 景区地区 进入首页点击景区地区,进入景区地区景区列表 显示正确景区地区的景区信息列表
TC9 景区详情 点击首页景区图片或者景区名称,进入景区详情页面 完整显示景区详情信息

游记测试用例,如表6.3所示。
表6.3 游记测试用例表
测试用例ID 场景 测试步骤 预期结果
TC10 游记列表 进入首页点击浏览游记,进入游记列表 完整显示游记信息
TC11 收藏游记 点击任意游记,进入详情页,点击心形 成功收藏心变色
TC12 取消收藏 点击已收藏的游记,进入详情页,点击心形 取消收藏心形变色
TC13 发表游记 在游记列表点击我要发游记按钮,进入写游记页面,填写游记名称、简介和图片,点击提交 发布成功且显示在游记列表
TC14 发表游记 在游记列表点击我要发游记按钮,进入写游记页面,不填写游记第一张图片,其余信息全部填写完整,点击提交 发表失败
TC15 发表游记 在游记列表点击我要发游记按钮,进入写游记页面,不填写游记名称,其余信息全部填写完整,点击提交 发表失败并提示游记名称不能为空
TC16 发表游记 在游记列表点击我要发游记按钮,进入写游记页面,不填写游记简介,其余信息全部填写完整,点击提交 发表失败并提示简介不能为空
TC17 发表游记 未登录用户在游记列表点击我要发游记按钮,进入写游记页面,填写游记名称、简介和图片等等全部信息,点击提交 发表失败并提示请登录后发游记

景区评论测试用例,如表6.4所示。
表6.4 景区评论测试用例表
测试用例ID 场景 测试步骤 预期结果
TC18 查看评论 进入首页点击景区图片或者景区名称,进入景区详情页面,查看评论 完整显示评论信息
TC19 发表评论 进入首页点击景区图片或者景区名称,进入景区详情页面,在写评论区输入想评论的内容 发表成功并显示在评论列表
TC20 发表评论 进入首页点击景区图片或者景区名称,进入景区详情页面,在写评论区不输入任何内容 发表失败并提示评论内容不能为空
TC21 发表评论 进入首页点击景区图片或者景区名称,进入景区详情页面,在写评论区填写超过一百字 发表失败并提示评论内容超出限制
TC22 发表评论 未登录用户进入首页点击景区图片或者景区名称,进入景区详情页面,在写评论区输入想评论的内容 发表失败并提示请登录后评论

游记评论测试用例,如表6.5所示。
表6.5 游记评论测试用例表
测试用例ID 场景 测试步骤 预期结果
TC23 查看评论 进入首页点击浏览游记,点击游记,进入游记详情页面,查看评论 完整显示评论信息
TC24 发表评论 进入首页点击浏览游记,点击游记,进入游记详情页面,在评论区输入想评论的内容 发表成功并显示在评论列表

续表6.5 游记评论测试用例表
TC25 发表评论 进入首页点击浏览游记,点击游记,进入游记详情页面,在写评论区不输入任何内容 发表失败并提示评论内容不能为空
TC26 发表评论 未登录用户进入首页点击浏览游记,点击游记,进入游记详情页面,在写评论区输入想评论的内容 发表失败并提示请登录后评论

6.1.2 管理员测试
管理员登录测试用例,如表6.6所示。
表6.6 登录测试用例表
测试用例ID 场景 测试步骤 预期结果
TC27 管理员登录 进入后台管理登录页面,输入正确的帐号、密码和验证码,点击登录 登录成功并跳转到用户管理页面
TC28 管理员登录 进入后台管理登录页面,输入不正确的帐号和密码,点击登录 登录失败并提示用户名或密码错误

用户管理测试用例,如表6.7所示。
表6.7 用户管理测试用例表
测试用例ID 场景 测试步骤 预期结果
TC29 用户管理 进入用户管理页面,查看用户信息 正确显示用户信息
TC30 删除用户 点击指定用户的删除按钮 删除成功

景区管理测试用例,如表6.8所示。
表6.8 景区管理测试用例表
测试用例ID 场景 测试步骤 预期结果
TC31 景点管理 进入景区管理页面,查看景区信息 正确显示景点信息
TC32 删除景区 点击指定景区的删除按钮 删除成功
TC33 添加景区 点击右侧加号,进入添加景区页面,输入正确的景区信息,点击提交 添加成功
TC34 添加景区 点击右侧加号,进入添加景区页面,进入添加景区页面,不选图片上传,其余信息填写完整,点击提交 添加失败并提示没有文件被上传
TC35 添加景区 点击右侧加号,进入添加景区页面,进入添加景区页面,不输入完整的景区信息,点击提交 提示填写没有填写的字段
TC36 修改景区 在景区列表点击修改,进入修改景区页面,修改想修改的字段,点击提交 显示景点信息并修改成功
TC37 修改景区 在景区列表点击修改,进入修改景区页面,把任意字段改成空,点击提交 提示填写没有填写的字段

游记管理测试用例,如表6.9所示。

表6.9 游记管理测试用例表
测试用例ID 场景 测试步骤 预期结果
TC38 游记管理 进入游记管理页面,查看游记信息 正确显示游记信息
TC39 删除游记 点击指定游记的删除按钮 删除成功

游记评论管理测试用例,如表6.10所示。
表6.10 游记评论管理测试用例表
测试用例ID 场景 测试步骤 预期结果
TC40 评论管理 进入评论管理页面,查看评论信息 正确显示评论信息
TC41 删除评论 点击指定评论的删除按钮 删除成功

景区评论管理测试用例,如表6.11所示。
表6.11 景区评论管理测试用例表
测试用例ID 场景 测试步骤 预期结果
TC42 评论管理 进入评论管理页面,查看评论信息 正确显示评论信息
TC43 删除评论 点击指定评论的删除按钮 删除成功

广告管理测试用例,如表6.12所示。
表6.12 广告管理测试用例表
测试用例ID 场景 测试步骤 预期结果
TC44 添加广告 进入广告管理页面,点击添加按钮,输入广告名称、广告内容、广告图片全部信息后,点击添加按钮 添加成功
TC45 添加广告 进入广告管理页面,点击添加按钮,输入广告信息过程中任意一项信息不填写,点击添加 添加失败
TC46 删除广告 点击指定广告的删除按钮 删除成功

6.2 测试结论
本网站的用户和管理员功能由各种数据进行测试,需要检查系统功能是否满足系统开发的目的,在使用大量数据来测试系统后。系统发现问题,经过多次修改和回归测试,终于达到了预期的目标,系统可以正常运行,最终实现网站的开发目标。

第7章 结 论
本系统是使用ThinkPHP的框架搭建的,主要实现了景区展示的功能。完成了用户和管理员两类用户的登录注册以及完成个人信息功能,实现了管理员对景区的发布功能、修改功能和删除功能;实现了用户浏览景区以及浏览游记等功能;同时增加了景区评论、收藏游记和点赞游记等特色功能。同时使用Bootstrap,JavaScript等技术对页面的交互进行了优化,可以说本系统从功能及用户体验等多方面做到了预计效果功能。
本系统在开发中遇到了很多困难和问题。在做景区评论与回复时,由于数据库设计的不合理,导致很长时间项目进度停滞不前,后来在一位同学的建议下,重新设计数据库,才得以让回复评论的模块顺利实现。在前台调试时,由于不清楚margin与parrding等等容易混淆的标签用法,前台页面布局总是产生混乱、叠加和错位等等。div没办法放置到想要放置的位置上,对页面的布局上造成了很大的困扰,最终也是通过反复的修改和在查阅相关资料后解决了这个问题。由于前端技术不是很成熟,在引入jQuery文件时出现了由于版本不同页面出现错乱的问题,虽然解决办法很简单,不过在寻找问题的过程中尝试了重定义标签样式,重写JavaScript样式等多种办法,最终才找到问题的根源。
本系统最终实现了想要的基本功能,在现有基础上还可以完善景区的这个模块,与游记查询的这个模块,以及实现用户自动验证功能。同时本系统可以与酒店、导游等多方面合作的网络平台。为在游客和景区多方面的创造丰富的机会及空间。本系统在编码上由于技术上不够成熟、所以还存在欠缺,编写的代码部分存在冗余,同时部分SQL语句写法也有待优化。总体来说本系统实现了用户的基本需求,优化了一部分用户体验,在服务器交互以及页面美化上还有待优化完善。
参考文献
[1]印伟涛. 车载信息系统服务器端的设计与实现[D].电子科技大学,2011.
[2]郑治伟.旅游网站为旅游企业插上腾飞的翅膀[J].商业研究,2003(11):148-150.
[3]张映辉.携程网和去哪儿网的营销模式对比分析[J].才智,2014(31):2+4.
[4]姚延昊. 网上宠物店的设计与实现[D].东北大学,2015.
[5]刘晓雷. 汽车维修保养管理系统的设计与实现[D].北京邮电大学,2010.
[6] 徐诚斌.MVC在ThinkPHP框架中的应用研究.信息与电脑:理论版,2011,0(3);160-160
[7] 宋国柱,杨华,车秀梅.基于MySQL的高可靠性缓存DNS系统的设计与实现.太原科技大学学报,2014,35(6);423-428
[8] 赵光亮.Navicat for MySQL平台中的SQL语言分析与应用.无线互联科技,2017,0(19);74-75
[9] 吴秀君.面向电子政务的MongoDB与MySQL混合存储策略.计算机与现代化,2014,(8);62-66
[10] 常中华.在MYSQL中实现多语言数据库设计.软件工程师,2014,0(9);51-53
[11] 张宝燕.基于遗传算法的MYSQL数据库检索策略优化与设计.太原师范学院学报:自然科学版,2015,14(3);45-47
[12] Sun Z, Sun Z.A Film Criticism Website Based on “ThinkPHP”[M]. IGI Global,2017
致 谢
经过了两个多月的努力,我最后完成了论文的写作。从开始论文的定题到网站项目的实现,再到论文文章的完成。每一步对于我来说都是一个新的尝试与挑战,这个网站项目也是我大学四年期间独立完成的最大的项目。在这个期间,我学会了很多知识也学会了独立思考。感谢我的学校给了我学习的机会,感谢宋晓慧老师在毕设期间的悉心指导、严格要求以及思想上无微不至的关怀,在此谨向宋晓慧老师致以诚挚的谢意和崇高的敬意。因为老师的辛勤付出,才使得我的论文成功完成。同时感谢和我一起在大学学习了四年的同学们,是你们的支持才让我在学习的路上越走越远。最后感谢远在他乡的父母,感谢你们的养育之恩,你们的支持与关怀是我走向未来最大的动力。
最后还要特别感谢在百忙之中评阅论文和参加答辩的各位老师们!

资源下载

你可能感兴趣的:(计算机毕业设计,论文,php,计算机毕业设计)