ThinkPHP5实现用户管理系统

本文主要讲使用ThinkPHP5实现用户管理系统功能
[hide]

thinkphp5
首先配置application/config.php

// 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'student',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '',

登录功能流程
1、定义一个Login.html页面,提交表单,然后在login_all()方法验证这次登录是否成功,获取用户名input(‘name’);密码input(‘password’);

<form method="post" action="login_all">  
<input type="text" required="required" placeholder="用户名" name="name"></input>  
<input type="password" required="required" placeholder="密码" name="password"></input>  
<button class="but" type="submit">登录</button>  
 </form>  

2、通过DB->where()…查询用户密码是否正确
3、存入session,在前置方法做验证,如果没登录就无法进入index 页面或其他方法。
4、登录成功,通过redirect(‘index’); 方法跳转到首页

首页功能

1、首先这是一个用户管理的系统,要有用户登录、注册、修改、删除等功能
20180920183729.png
如上图所示,这是一个首页界面

2、我们看看其中的HTML代码,其中{volist}这个标签是TP自带的一个循环数据的标签,其中name=”data” 代表的是后台传过来的数据,如下后台代码
——————————-这个是index()的后台代码———————

$db = db('user');   //链接user数据库 
$data = $db->select();  //查询数据
return $this->fetch('index',['data'=>$data]);
//'index'代表的是index.html页面,['data'=>$data]代表的是传入前台的数据,以'data'命名

———————-这个是index.html的代码———————-
我们分析一下这段代码,首先从删除说起吧,数据库的每一条数据一般都会有个ID ,然后通过ID删除这条数据,就好像每个人都会有一个身份证做为特殊标识一样。同理哪不管是修改、删除,都首先要找到这个人的ID,我们才可以对这条数据进行操作。
delete?id={$vo.id} ,其中delete代表删除方法,?id={$vo.id} 代表用get方式传值给delete($id)方法 ,然后通过这个ID进行操作。

<h1 style=" text-align: center;">welcome:<font style=" color: red;">{$_SESSION['think']['name']} <a href="login_out">退出登录</a></font></h1>
    <table>  
        <caption>用户管理</caption>  
        <thead>  
            <tr>  
                <th>ID  
                <th>用户名  
                <th>登录时间
                <th>操作
        </thead>  

        <tbody>  
            {volist name="data" id="vo"}
            <tr>  
                <td>{$vo.id} 
                <td>{$vo.name}
                <td>{$vo.logintime}
                <td><a href="add">添加</a>|<a href="update?id={$vo.id}">修改</a>|<a href="delete?id={$vo.id}">删除</a>
            {/volist}
        </tbody>  
    </table>  

——————————update方法——————————-
传入一个要修改的ID,然后通过这个ID去修改这条数据的值,通过这个方法去修改update([‘name’=>$name]) , ‘name’就是字段名,\$name就是要修改的值。

 //用户修改方法
    public function update_all($id)
    {
        $db = db('user');
        $name = input('name');
        $password = input('password');
        $upd = $db->where(['id'=>$id])->update(['name'=>$name,'password'=>$password]);
        if($upd){
            echo '修改成功';
            $this->redirect('index');
        }else{
            echo '修改失败';
        }
    }

——————————update.html——————————-
这个页面的$data是从update方法传来的,首先我们要修改一个人的信息,要先让他看到他之前的信息。通过传到update的ID去查询这条信息,然后再update.html页面显示出来。再通过update_all()修改这条数据。

<form method="post" action="update_all">  
            <input type="text" required="required" placeholder="用户名" name="name" value="{$data['name']}"></input>  
            <input type="password" required="required" placeholder="密码" name="password"></input>
            <input type="text" hidden="false" name="id" value="{$data['id']}">  
            <button class="but" type="submit">提交</button>  
        </form>  

———————————-add.html—————————-
添加用户不需要知道用户的ID ,所以我们在添加的时候,只要填上对应的值就可以添加了。
$list = $db->insert([‘name’ => $name, ‘password’ => $password]);
这句代码就是添加的代码。获取name , password的值以后添加到对应的数据表。

<form method="post" action="add_all">  
            <input type="text" required="required" placeholder="用户名" name="name"></input>  
            <input type="password" required="required" placeholder="密码" name="password"></input>  
            <button class="but" type="submit">提交</button>  
        </form>  

———————————-总结——————————
其实用户管理最基本的几个操作方法就是
update()
insert()
find()
delete()
基本上所有的网站都离不开添加修改删除查询。
这也是最基础的东西,剩下的还需要靠一点一点的项目积累下来。

namespace app\index\controller;

use think\Controller;
use app\index\model\User;
use think\Session;
class Index extends \think\Controller
{   

    protected $beforeActionList = [
       'gosession' =>  ['except'=>'login,login_all'],    //tp前置方法,不管执行那个方法,都要先执行gosession , 除了login,login_all方法
    ];

    //定义前置控制器
    public function gosession()
    {   
        $id=Session::get('id');
        if(!$id)
        {
            $this->error('请先登录','login');
        }
    }


    //用户管理首页, 登录成功后的页面
    public function index()
    {
        $db = db('user');
        $data = $db->select();
        return $this->fetch('index',['data'=>$data]);
    }

    //退出登录
    public function login_out()
    {
        session::clear();
        $this->success('退出成功','login');
    }

    //登录页面
    public function login()
    {

        return $this->fetch('login');

    }

    //用户登录方法
    public function login_all()
    {
        $db = db('user');
        $name = input('post.name');
        $password = input('post.password');
        // 查询数据
        $list = $db->where(['name'=>$name,'password'=>$password])->find();

        //如果存在就存入session,并且跳转首页
        if($list)
        {   

            Session::set('name',$name);
            Session::set('id',$list['id']);

            $db->where(['name'=>$name,'password'=>$password])->update(['logintime'=>date("Y-m-d H:i:s")]);
            $this->redirect('index');
        }else
        {
            $this->error('登录失败','login');
        }
    }




    //用户添加页面
    public function add()
    {
        return $this->fetch('add');
    }


    //用户添加方法
    public function add_all()
    {
        $name = input('post.name');
        $password = input('post.password');
        $db = db('user');
        //添加用户
        $list = $db->insert(['name' => $name, 'password' => $password]);
        //判断添加用户是否成功
        if($list){
            $this->success('添加成功!','index');
        }else{
            $this->error('添加错误!','index');
        }
    }

    //用户修改页面
    public function update($id)
    {     
        $db = db('user');
        $data = $db->where(['id'=>$id])->find();
        return $this->fetch('update',['data'=>$data]);
    }

    //用户修改方法
    public function update_all($id)
    {
        $db = db('user');
        $name = input('name');
        $password = input('password');
        $upd = $db->where(['id'=>$id])->update(['name'=>$name,'password'=>$password]);
        if($upd){
            echo '修改成功';
            $this->redirect('index');
        }else{
            echo '修改失败';
        }
    }

    //删除用户方法
    public function delete($id)
    {
        $db = db('user');
        $del=$db->where(['id' => $id])->delete();
        $this->redirect('index');
    }

}

[/hide]



微信扫描下方的二维码阅读本文

阅读剩余
THE END
版权声明