admin 管理员组文章数量: 887017
后台管理系统
https://gitee/hu-shaobin/php-projects 源码地址
文章目录
- 后台管理系统
- 1.前期准备
- 1.1需要资源
- 1.2安装thinkphp5
- 1.3安装layui
- 1.4配置域名
- 1.5查询语句封装
- 2.登录页面
- 2.1用户表
- 2.2创建入口文件
- 2.3验证码的安装与配置
- 2.4回车登录
- 2.5点击刷新验证码
- 3.后台首页
- 3.1布局
- 3.2功能
- 3.3阻止非法用户访问
- 4.管理员管理
- 4.1管理员列表
- 5.权限管理
- 5.1菜单管理
- 5.2角色管理
- 6.系统管理(未完善)
- 6.1网站设置
- 7.标签管理
- 7.1标签表
- 7.2布局
- 7.3功能
- 8.影片管理
- 8.1影片表
- 8.2布局
- 8.3功能
- 9.杂项
1.前期准备
1.1需要资源
thinkPHP5后端框架+layui前端框架+mysql
1.2安装thinkphp5
在phpstudy/www目录下安装tp5.0
composer create-project --prefer-dist topthink/think=5.1 文件名 (比如video)
1.3安装layui
到layui官网下载:https://www.layui/
把luyai解压放在public/static/plugins目录下以便后面html文件引用
<link rel="stylesheet" href="/static/plugins/layui/css/layui.css">
<script type="text/javascript" src="/static/plugins/layui/layui.js"></script>
1.4配置域名
访问浏览器http://php.demo/,出现下图,配置成功
1.5查询语句封装
extend/Util/data/Sysdb.php
2.登录页面
2.1用户表
2.2创建入口文件
在public目录下创建admins.php(内容同index.php),然后在application目录下创建admins,在admins目录下创建controller和view目录,最后在controller控制器创建Account.php和view相应视图。
2.3验证码的安装与配置
2.3.1安装
d:\phpstudy\WWW\video>composer require topthink/think-captcha 1.*
2.3.2 config.php验证码配置(可做相应修改)
// 验证码配置
'captcha' => [
'setKey'=>'DolphinPHP.COM',//必须
// 验证码的字符集
'codeSet' => '23456789abcdefhijkmnpqrstuvwxyzABCDEFHJKMNPQRSTUVWXYZ',
// 设置验证码字体大小
'fontSize' => 18,
// 添加混淆曲线
'useCurve' => false,
// 设置图片的高度、宽度
'imageW' => 150,
'imageH' => 35,
// 验证码位数
'length' =>4,
// 验证成功后重置
'reset' =>true
],
2.4回车登录
2.5点击刷新验证码
3.后台首页
3.1布局
3.2功能
菜单点击,注销(代码见admins/controller/Hom.php和admins/controller/view/home)
3.3阻止非法用户访问
写一个baseAdmin类,实现对没有登录用户不能访问。然后admins/controller所有文件继承该类。
<?php
namespace app\admins\controller;
use think\Controller;
use Util\data\Sysdb;
class BaseAdmin extends Controller
{
public function __construct(){
$this->db=new Sysdb();
parent::__construct();
$this->_admin = session('admin');
// 未登录的用户不允许访问
if(!$this->_admin){
//如果session没有值,判定用户没有登录就跳转到登录页面
header('Location: /admins.php/admins/Account/login');
exit;
}
}
}
4.管理员管理
4.1管理员列表
4.1.1布局
4.1.2功能:添加,编辑,删除(代码见admins/controller/Admin.php和admins/view/Admin)
添加界面
编辑界面
添加编辑页面见layer弹出层的iframe层 https://layer.layui/
删除界面
删除界面见layer弹出层的询问层 https://layer.layui/
4.1.3 表格中volist函数循环遍历
{volist name="data.lists" id="vo"}
<tr>
<th>{$vo.id}</th>
<th>{$vo.username}</th>
<th>{$vo.truename}</th>
<th>{$vo.gid}</th>
<th>{$vo.status}</th>
<th>{$vo.add_time}</th>
<th>
<button class="layui-btn layui-btn-xs">编辑</button>
<button class="layui-btn layui-btn-xs layui-btn-danger">删除</button>
</th>
</tr>
{/volist}
5.权限管理
5.1菜单管理
5.11布局
5.1.2 菜单表
菜单只能显示两级,默认只有两级菜单,pid为上一级菜单的mid
5.13功能:保存,子菜单,返回上一级(代码见admins/controller/Menu.php和admins/view/Mneu)
注:只有pid>0才有返回上一级,只有$pid=0才有子菜单。
5.2角色管理
5.2.1布局
5.2.2角色表
5.2.3功能:添加编辑删除(代码见admins/controller/Roles.php和admins/view/Roles)
5.2.4权限菜单分级
把子菜单放在children里
private function gettreeitems($items){
$tree = array();
foreach ($items as $item) {
if(isset($items[$item['pid']])){
$items[$item['pid']]['children'][] = &$items[$item['mid']];
}else{
$tree[] = &$items[$item['mid']];
}
}
return $tree;
}
下面两图就是分级和不分级区别:
2
6.系统管理(未完善)
6.1网站设置
6.1.1布局
6.1.2网站名称表
6.1.3功能(代码见admins/controller/Site.php和admins/view/Site)
7.标签管理
7.1标签表
flag分类:比如频道(channel)资费(charge)地区(area)…
7.2布局
7.3功能
(代码见admins/controller/Labels.php和admins/view/Labels)
8.影片管理
8.1影片表
8.2布局
8.3功能
8.3.1(代码见admins/controller/video.php和admins/view/video)
8.3.2 添加编辑删除
8.3.3 分页功能+模糊搜索
后端代码:分页参考thinkphp分页实现https://www.kancloud/manual/thinkphp5_1/354120
前端使用layui分页模块https://www.layui/doc/modules/laypage.html
8.3.4图片上传
前端使用layui的文件上传https://www.layui/doc/modules/upload.html
后端使用thinkphp上传文件https://www.kancloud/manual/thinkphp5_1/354121
9.杂项
js 函数传值
onclick="functionName(this);"
onclick="functionName(this.value);"
通过this传值,函数获取的是当前的这个标签,比如p、li等,如果用jQuery来获取当前的这个标签可以通过
functionName(obj){ $(obj).attr('p');}
这样$(obj)就是获取了当前的那个标签;
通过this.value传值的,在函数方面接收的就是具体的数据
functionName(obj){ alert(obj);}
提交表单
$.post('/admins.php/admins/Admin/save', $('form').serialize(), function(res) {}, 'json');
页面刷新:
setTimeout(function(){ window.location.reload(); },1000)
js 中return false作用
onclick="child({$vo.mid});return false;"
在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你的 onclick时间(如果你指定的话)以外还要触发一个默认事件就是执行页面的跳转。所以如果你想取消对象的默认动作就可以return false。
版权声明:本文标题:后台管理系统(含源码) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729170057h1326538.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论