php计算机毕业设计基于thinkphp框架的特色旅游网站vue
目前家乡石泉市是一个有不同民族“大杂居,小聚居”的地方,所以对于发展家乡特色业还是比较有优势的。现在随着国内经济的增长和科技的发展,以及人们日常生活方式的改变,网络越来越成为人们高效、快速选择旅游目的地的重要方式。目前市场上还没有专门针对石泉游玩的网站,对于喜欢旅游的人来说,一个详细的石泉门户网站介绍是非常重要的。在当下的互联网时代,为了更加方便的为用户提供详细的家乡信息以及更好的宣传石泉,有一个完善且全面的信息宣传系统是尤为重要的。
PHP语言是当前最流行的高级语言之一,它主要是为了网页开发而诞生的,尤其是最近两年随着互联网的高速发展,越来越多的网站诞生了,这也就导致更多的人喜欢上了PHP,和PHP等其他语言相比,它的语法结构简单,大多数学习过编程的人基本只需要看下说明和教程就可以快速的上手进行开发,而其他语言都需要经过漫长的学习和培训才能做到这一点。为此很多人说PHP是世界上最好的语言。
PHP虽然是为了WEB诞生的,但是它在配置和运行方面都非常的方便,它也是一个可以跨平台的语言,可以在Windows和Unix,Linux甚至苹果的Mac IOS上运行,在环境配置方面现在市面上有很多的集成开发环境,比较知名的有PHPstudy,Wamp,XAMPP等,这些环境安装都是比较简单的,及其方便安装和部署,这些都是让PHP快速吸粉的主要因素。而且PHP语言是一种开源且免费的语言,这更加让它深受广发开发人员的喜欢。
针对目前世界上流行的大量软件和开发工具进行分析其优缺点。软、硬件能否满足需要,决定本系统采用基于B/S架构,开发语言PHP,MVC开发模式。数据库系统采的是MySQL,它能够处理大量数据,是一种关系型数据库管理系统,具有运行速度快,灵活性高,同时在一定程度上能保持数据的完整性、安全性。使用PHP开发网站具有成本低、速度快等优势,而且我对这项技术比较熟悉,不需要花费额外时间再去学习,因此本系统的开发平台已经相对成熟可行。
开发了石泉网站,希望可以帮助游客查询了解石泉的景区,网站提供了各景区的精美图片,可以让用户提前感受秀美的风景。在互联网时代,更需要有一个完善的石泉资讯宣传平台,给游客提供便利并且更好地让石泉的文化得到广泛的传播。比如热门景区中坝峡谷,后柳水乡,石泉古城的景区等,为游客和各相关的行业提供全面详细的旅游信息。论文分别论述了基于PHP完成的石泉网的设计与实现。
在家乡石泉网站系统的实现下,家乡石泉网站人员能够充分发挥信息化处理的优势,提高日常管理的处理速率。用户一方可以更好的享受信息化处理带来的便利。系统运行能够稳定且高效。并且人机友好程度能够显著提升。
<?php
namespace app\index\controller;
use http\Params;
use think\Cache;
use think\Controller;
use think\Db;
use think\Request;
use think\Session;
class UsersController extends CommonController
{
public function __construct()
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');
}
public $columData = [
'id','addtime','username','password','role'
];
/**
* 登录接口
* POST
* */
public function login(){
$name = trim(input('get.username'));
$password = trim(input('get.password'));
$result = Db::table('users')->where(['username' => $name, 'password' => $password])->find();
if ($result){
$token_array = [
"iat" => time(), //签发时间
"exp" => time()+7200, //token 过期时间
'id' => $result['id'],
'isAdmin' => 1,
'tablename'=> 'users',//表名
"success" => $result, //记录的uid的信息,如果有其它信息,可以再添加数组的键值对
];
$tokens = base64_encode(json_encode($token_array));
$data = ['code' => 0, 'token' => $tokens];
Cache::set($tokens,$result['id']);
Cache::set(md5($result['id']),$result['username']);
return json($data);
}
return json(['code' => 500,'msg'=>"登陆失败,账号或密码错误。"]);
}
/**
* 退出
* POST
*/
public function logout(){
$token = $this->token();
Cache::pull($token);
return json(['code'=>0,'msg'=>'退出成功']);
}
/**
* 获取session的接口
* GET
*/
public function session(){
if (Cache::get($this->token())==false) return json(["code"=> 500,'msg'=>"您还没有登陆。"]);
$data = json_decode(base64_decode($this->token()),true);
$arrayData = $data['success'];
return json(['code'=>0,'data'=>$arrayData]);
}
/**
* 找回密码 重置为123456
**/
public function resetPass(){
$username = input('post.username');
$count = DB::table('users')->where(['username' => $username])->count();
if($count==0) return json(['code'=>500,'mas'=>"账号不存在"]);
$result = Db::table('users')->where(['username' => $username])->update(['password' => '123456']);
return json(['code'=>0,'mas'=>"密码已重置为:123456"]);
}
/**
* 分页接口 GET
* $page 当前页
* $limit 每页记录的长度
* $sort 排序字段
* $order 升序(默认asc)或者降序(desc)
* */
public function page(){
$token = $this->token();
if (Cache::get($token) == false) return json(['code'=>500,'msg'=>"您还没有登陆。"]);
$userid = Cache::get($token);
$base = json_decode(base64_decode($token,true),true);
$tabnames = $base['tablename'];
$page = isset($_GET['page'])?input('get.page'):"1";
$limt = isset($_GET['limit'])?input('get.limit'):"10";
$sort = isset($_GET['sort'])?input('get.sort'):"id";
$order = isset($_GET['order'])?input('get.order'):"asc";
$where = [];//判断条件
$count = Db::table('users')->where($where)->count();
// 取整函数(ceil,floor,round)
$page_count = ceil($count/$limt);//页数
$result = Db::table('users')->where($where)->limit(($page-1)*10,$limt)->order($sort." ".$order)->select();
return json([
'code' => 0,
'data' => [
"total" => $count,
"pageSize" => $limt,
"totalPage" => $page_count,
"currPage" => $page,
"list" => $result
]
]);
}
/**
* 保存接口 post
*
*/
public function save(){
$token = $this->token();
$session = Cache::get($token);
if ($session == false) return json(['code'=>500,'msg'=>"您还没有登陆。"]);
$postData = input('post.');
if (!empty($postData)&&!is_array($postData)){
$postData = json_decode($postData,true);
}
$v = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
$v[$key] = $value;
}
}
$result = Db::table('users')->insert($v);
if (!$result) return json(['code'=>500,'msg'=>"新增失败"]);
return json(['code'=>0]);
}
/**
* 更新接口 post
* 包含主键
*/
public function update(){
$postData = input('post.');
$token = $this->token();
if (Cache::get($token)==false) return json(['code'=>500,'msg'=>"您还没有登陆。"]);
$v = $where = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
if ($key == "id"){
$where[$key] = $value;
}
$v[$key] = $value;
}
}
$result = Db::table('users')->where($where)->update($v);
if (!$result) return json(['code'=>500]);
return json(['code'=>0]);
}
/**
* 删除接口 post
* $id id
*/
public function delete(){
$ids = input('post.');
$result = Db::table('users')->delete($ids);
return json(["code"=> 0]);
}
/**
* 详情接口info ,后台接口
* get
* $id id
* */
public function info($id=false){
$token = $this->token();
if (Cache::get($token)==false) return json(["code"=> 500,'msg'=>"您还没有登陆。"]);
$where = ['id'=>$id];
$result = Db::table('users')->where($where)->find();
return json(["code"=> 0,'data' => $result]);
}
}
目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37