TP5 用户管理

    xiaoxiao2021-03-25  375

    http://pan.baidu.com/s/1i4GsL3f 这个是全部源码。包括数据库文件也在项目根目录下。 为了整洁美观,我把所有用到的方法贴在文章的末尾部分 可以边看实现流程,边看实现的代码。 首先配置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、首先这是一个用户管理的系统,要有用户登录、注册、修改、删除等功能

    如上图所示,这是一个首页界面

    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'); } }
    转载请注明原文地址: https://ju.6miu.com/read-24793.html

    最新回复(0)