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。

本文标签: 管理系统 源码 后台