机房在线管理系统的设计与实现 开发记录

  • 简介: 本系统采用B/S(浏览器服务器模式),以php技术为主,采用thinkphp框架,html+css+js web前端三大件实现网页,mysql数据库建立系统。
    选用开发工具为免费的vscode。采用phpstudy(apache+php+mysql)集成的php调试环境。
    分析 设计 实现 测试 四个主要章节 绪章 关键技术
  • 功能实现:
    1.启动vscode thinkphp的初步配置:可以用build.php 自动生成所需目录 也可手动自己建立。
    2.启动phpstudy 建立网站 根目录定位到应用入口文件index.php 的public目录。注意去修改数据库database.php 配置文件的数据库名等信息与phpstudy 中相同
    3.在view 放入前端写好的html网页 然后在public\staic中放资源文件 images style(css 和jss) 可以在模块下写配置文件config.php’view_replace_str’ => [];然后在html中直接引用相对路径。
    4.其中很多网页要用的左边菜单栏部分可以分离出去然后在其他网页引用, {include file=“public/htmenu”/}
    5.用phpmyadmin创建数据库
    6.在添加课程和修改课程的内容部分引入UEditor html编辑器 把下载好的ueditor放入public 中然后在html中引入

    1
    2
    3
    
    1.<script type="text/javascript" src="__STATIC__/houtai/ueditor/ueditor.config.js"></script>
    <script type="text/javascript" src="__STATIC__/houtai/ueditor/ueditor.all.min.js"></script>
    <script type="text/javascript" src="__STATIC__/houtai/ueditor/lang/zh-cn/zh-cn.js"></script>
    1
    
    2.<textarea name="content"  id="content">{$kecheng.content}</textarea>
    1
    2
    3
    4
    5
    6
    7
    
    3.  <script type="text/javascript">
        //实例化编辑器
        UE.getEditor('content', {
            initialFrameWidth: 1560,
            initialFrameHeight: 300,
        });
    </script>

    7.在index.php中写主界面所采用的登录规则 用post 方式收集管理员信息 $username = $_POST[‘username’]; 然后查询数据库中是否存在管理员的信息,

    1
    2
    3
    4
    5
    
    $res = Db::table('t_admin')->where([
                'username' => $username,
                'password' => $password
            ])->find();
    登录成功的同时用 用session保存信息的userinfo  session('userinfo', $res); 同时用哪个session获取当前管理员名字等信息  跳转$this->success("登录成功", Url('index/adminindex')); 其他注册 规则 修改管理员与老师个人信息方法类似。 

    8.可以进一步完善 添加管理员 用验证器 写验证规则<?php

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    namespace app\admin\validate;
    use think\Validate;
    class index extends Validate
    {
    protected $rule = [
        'username'  =>  'require|max:25|unique:admin',
        'password' =>  'require',
    ];
    protected $message  =   [
        'username.require' => '管理员名称必须填写',
        'username.max' => '管理员名称长度不得大于25位',
        'username.unique' => '管理员名称不得重复',
        'password.require' => '管理员密码必须填写',
    ];
    }
    再控制器中去实例化并用post收集表单数据 并check 检查
    public function tianjiaadmina()
    {
    if (request()->isPost()) {
    	$data = [
    		'username' = > input('username'),
    			'password' = > input('password'),
    	];
    	$validate = \think\Loader::validate('Admin');
    	if (!$validate->scene('add')->check($data)) {
    		$this->error($validate->getError());
    		die;
    	}
    	if (db('admin')->insert($data)) {
    		return $this->success('添加管理员成功!', 'lst');
    	}
    	else {
    		return $this->error('添加管理员失败!');
    	}
    	return;
    }
    return $this->fetch();
    }

    9.model 中的php 对数据进行处理 写对数据加工的函数 接收数据 数据对比等 然后把处理的结果交给控制器中的php 对结果进行说明 。控制器调用model的函数方法。登录时验证用户名和密码是否正确。
    10.写个base php 写初始函数_initialize 相当于c++中构造函数 然后让其他php 继承于它。
    改进:同名laoshi mingzi 显示课表问题 还有管理员删除权限等级设置 .
    11.orm它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。