小型用户管理系统总结

原创2018-12-10 20:06:11154
摘要:完成了增删改查以及搜索扩展等功能,搜索功能又一个小问题,这个地方,是需要遍历么?还是写死呢?遍历的话遍历得到的是字段的值如何转为汉字呢?总结起来就是运用写好的简单框架,然后继承一下框架基类,运用框架基类来运行项目,一个模型类负责一张数据表,控制器来负责将模型传过来的数据运用框架Plates类的方法来创建模板和模板变量,然后在视图中进行输出遍历.然后视图用表单的方式传入到控制器中,再运用控制器中ne

完成了增删改查以及搜索扩展等功能,搜索功能又一个小问题,6.png这个地方,是需要遍历么?还是写死呢?遍历的话遍历得到的是字段的值如何转为汉字呢?

总结起来就是运用写好的简单框架,然后继承一下框架基类,运用框架基类来运行项目,一个模型类负责一张数据表,控制器来负责将模型传过来的数据运用框架Plates类的方法来创建模板和模板变量,然后在视图中进行输出遍历.然后视图用表单的方式传入到控制器中,再运用控制器中new一个对应数据表的模型类,使用模型基类中的方法增删改数据.

登陆功能主要是运用session,验证表单成功后将得到的结果的唯一值name传到session中依据session来判断是否登陆

plates框架主要功能:  render('模版目录代名::控制器文件夹/方法',['模板变量名1' => '值','模板变量名2' => '值2',....])

下面是主要代码 admin模块 Index.php控制器

<?php
namespace app\admin\controller;
session_start();
use app\model\User;
use hero\core\Controller;

class Index extends Controller
{
    public function __construct()
    {
        parent::__construct();
    }
    //测试
    public function demo($name='老王',$age=26)
    {
       return '我是:'.$name.',今年'.$age.',你凭什么说我!';
    }

    //用户信息列表
    public function index()
    {
        @$cond = $_POST['field'];    //没有值也忽略错误先
        if(isset($cond)){
            $search = $cond.'[~]';
            $rows = (new User())->select('user',['id','name','email','dept','art','create_time'],[
                //搜索功能,如果用户提交了搜索条件,则根据条件搜索,否则显示全部
                $search => isset($_POST['dept']) ? $_POST['dept'] : null
            ]);
        }else{
            $rows = (new User())->select('user',['id','name','email','dept','art','create_time']);
        }

        return $this->view->render('admin::index/index',[
            'rows' => $rows,
            'title' => '武林大会!',
            'loginUrl' => '/admin/index/login',  //登录
            'logoutUrl' => '/admin/index/logout',  //退出
            'indexUrl' => '/admin/index/index', //返回首页
            'insUrl' => '/admin/index/insert',   //添加操作
            'editUrl' => '/admin/index/edit',    //编辑操作
            'delUrl' => '/admin/index/delete',   //删除操作
        ]);
    }

    //管理员登录
    public function login()
    {
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            //验证用户
            $res = (new User())->get('admin',['name','email','password'],[
                'AND'=>[
                    'email' => $_POST['email'],
                    'password' => sha1($_POST['password']),
                ]
            ]);
//            var_dump($res);
            if($res == false){
                echo "<script>alert('邮箱或者密码不正确');location.href='/';</script>";
            }else{
                $_SESSION['name'] = $res['name'];
                echo "<script>alert('登录成功!');location.href='/';</script>";
            }
        }
    }

    //退出登录
    public function logout()
    {
        session_destroy();
        echo "<script>alert('退出成功!');location.href='/';</script>";

    }

    //添加数据:1.分两步: 1.渲染出一个添加表单;2.执行添加操作写入表中
    //渲染添加表单
    public function insert()
    {
        return $this->view->render('admin::index/insert',[
            'title' => '添加记录',
            'url' => '/admin/index/add'
        ]);
    }

    //执行添加操作
    public function add()
    {
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            //执行添加操作
            (new User())->insert('user',[
                'name' => $_POST['name'],
                'dept' => $_POST['dept'],
                'email' => $_POST['email'],
                'art' => $_POST['art'],
                'create_time' => time(),
            ]);
            echo "<script>alert('添加成功!');location.href='/';</script>";
        }
    }

    //编辑操作
    //1.渲染编辑模板,
    public function edit($id='')
    {
        $row = (new User())->get('user',['id','name','dept','art','email'],['id'=>$id]);
        return $this->view->render('admin::index/edit',[
            'title' => '编辑用户',
            'url' => '/admin/index/save',
            'row' => $row,
        ]);
    }

    //2.执行编辑操作
    public function save($id)
    {
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            //执行添加操作
            (new User())->update('user',[
                'name' => $_POST['name'],
                'dept' => $_POST['dept'],
                'email' => $_POST['email'],
                'art' => $_POST['art'],
            ],['id'=>$id]);
            echo "<script>alert('更新成功!');location.href='/';</script>";
        }
    }

    //执行删除操作
    public function delete($id)
    {
        $res = (new User())->delete('user',['id'=>$id]);
        if($res){
            echo "<script>alert('删除成功!');location.href='/';</script>";
        }
    }

主要模板文件 view/index(admin模块/Index控制器/index方法的模板)

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
 content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><?=$this->e($title) ?></title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>

<?php if(isset($_SESSION['name']) && $_SESSION['name'] == 'admin'): ?>
 <p>欢迎管理员:<?=$this->e($_SESSION['name']);?> | <a href="<?=$this->e($logoutUrl)?>">退出</a></p>
<?php else :?>
<form action="<?=$this->e($loginUrl) ?>" method="post">
 邮箱:<input type="text" name="email" required>
 密码:<input type="password" name="password">
    <button>管理员登陆</button>
</form>
<?php endif;?>
<table border="1" >

    <caption>
 舞林大会登记表
 <?php if(isset($_SESSION['name']) && $_SESSION['name'] == 'admin'): ?>
 <small><a href="<?=$this->e($insUrl) ?>">添加</a></small>
 <?php endif;?>
 </caption>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>门派</th>
        <th>必杀技</th>
        <th>邮箱</th>
        <th>注册时间</th>
 <?php if(isset($_SESSION['name']) && $_SESSION['name'] == 'admin'): ?>
 <th>操作</th>
 <?php endif; ?>

 </tr>
 <?php foreach ($rows as $row) :?>
 <tr>
        <td><?=$this->e($row['id']) ?></td>
        <td><?=$this->e($row['name']) ?></td>
        <td><?=$this->e($row['dept']) ?></td>
        <td><?=$this->e($row['art']) ?></td>
        <td><?=$this->e($row['email']) ?></td>
        <td><?=$this->e(date('Y-m-d',$row['create_time'])) ?></td>

 <?php if(isset($_SESSION['name']) && $_SESSION['name'] == 'admin'): ?>
 <td><a href="<?=$this->e($editUrl) ?>/id/<?=$this->e($row['id']);?>">编辑</a> /
            <a href="javascript:;" onclick="del(<?=$this->e($row['id']);?>); return false">删除</a>
        </td>
 <?php endif; ?>
 </tr>
 <?php endforeach;?>

</table>
<!--搜索功能-->
<form action="<?=$this->e($indexUrl) ?>" method="post">
    <select name="field">
        <option value="dept" selected = "selected">门派</option>
        <option value="name">姓名</option>
        <option value="email">邮箱</option>
        <option value="art">必杀技</option>
    </select>
 搜索: <input type="text" name="dept" placeholder="请输入关键字">
    <button>搜索</button>
</form>
<script>
 function del(id) {
        if(confirm('是否删除 id='+id+'的记录?')){
            location.href="/admin/index/delete/id/"+id;
 }
    }

</script>
</body>
</html>



批改老师:天蓬老师批改时间:2018-12-11 08:57:32
老师总结:无论再大的项目,都是由这些小部件组成, 只有掌握每一个基础功能的写法,才能开发大型商业项目

发布手记

热门词条