测试数据:
CREATE TABLE IF NOT EXISTS `tb_user` ( `id` int(8) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `logintime` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `tb_user` (`id`, `name`, `password`, `logintime`) VALUES (1, 'aaa', '123456', '2017-07-24 18:07:47'), (2, 'bbb', '123456', '2017-07-24 18:03:22'), (3, 'ccc', '123456', '2017-07-24 18:08:25');
控制器:
<?php namespace app\index\controller; use think\Controller; use think\Session; class Index extends 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() { $db = db('user'); $name = input('name'); $id = input('id'); $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'); } }
视图->用户登陆:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>用户登陆</title> </head> <body> <h3>用户登陆</h3> <form method="post" action="{:url('login_all')}"> <input type="text" required="required" placeholder="用户名" name="name"></input> <input type="password" required="required" placeholder="密码" name="password"></input> <button type="submit">登录</button> </form> </body> </html>
效果图:
视图->显示用户列表:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>显示用户列表</title> </head> <body> <h3>welcome:<font style=" color: red;">{$_SESSION['think']['name']} <a href="{:url('login_out')}">退出登录</a></font></h3> <table> <caption>用户管理</caption> <tr> <th>ID</th> <th>用户名 </th> <th>登录时间</th> <th>操作</th> </tr> {volist name="data" id="vo"} <tr> <td>{$vo.id}</td> <td>{$vo.name}</td> <td>{$vo.logintime}</td> <td><a href="add">添加</a>|<a href="{:url('update')}?id={$vo.id}">修改</a>|<a href="{:url('delete')}?id={$vo.id}">删除</a></td> </tr> {/volist} </table> </body> </html>
效果图:
视图->添加用户:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>添加用户</title> </head> <body> <h3>添加用户</h3> <form method="post" action="{:url('add_all')}"> <input type="text" required="required" placeholder="用户名" name="name"></input> <input type="password" required="required" placeholder="密码" name="password"></input> <button type="submit">提交</button> </form> </body> </html>
效果图:
视图->修改用户:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>修改用户</title> </head> <body> <h3>修改用户ID:{$data['id']}</h3> <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 type="submit">提交</button> </form> </body> </html>
效果图:
相关推荐
在TP5中,可以通过模型、控制器和视图三者配合,实现文章的CRUD(Create, Read, Update, Delete)操作,并可添加如分类、标签、搜索、排序等高级功能,提高内容管理的效率。 5. 饼图展示:在描述中提到了"tp5后台...
标题 "TP5 请求信息和页面跳转" 涉及的是PHP框架ThinkPHP5(简称TP5)中的两个核心概念:请求(Request)处理和页面重定向(Redirect)。在TP5中,这两个概念是构建Web应用程序的基础部分,帮助开发者更好地控制用户...
标题 "TP5 修改消息提示页面" 指的是在基于ThinkPHP5(TP5)框架的应用中,如何自定义或修改系统默认的消息提示界面。TP5是一个流行的PHP框架,广泛用于快速开发Web应用。在开发过程中,用户交互的反馈通常会通过...
5. **视图(View)**:视图层负责展示数据,与控制器交互,支持模板引擎,方便设计和渲染页面。 6. **控制器(Controller)**:控制器层负责接收请求,处理业务逻辑,调用模型并返回响应给视图。 三、主要功能 1. *...
2. TP5路由:学习如何配置和使用TP5的路由规则,以便正确导航到不同的页面和功能。 3. 模型操作:熟悉数据库操作,如CRUD(创建、读取、更新、删除),以及模型的关联关系设置。 4. 视图模板:了解如何创建和使用...
从“标签”中的“跳转页面”来看,这个主题特别关注的是在TP框架下如何优雅地处理表单提交后的页面跳转,包括在不同业务场景下的正确跳转策略,以及如何利用TP的辅助方法提升用户体验。 综上所述,"漂亮 TP框架表单...
此外,TP5提供了丰富的中间件(Middleware)机制,可以用来实现权限拦截,例如在用户访问某个页面之前进行权限验证。通过定义和注册中间件,我们可以在不影响核心业务逻辑的情况下,轻松地添加权限控制层。 总的来...
TP5强调简洁、快速的开发,支持命令行工具,内置了大量实用的助手函数,以及强大的数据库操作和事务处理能力。此外,TP5还支持自动路由、依赖注入、事件系统等现代Web开发特性。 **Bootstrap3:** Bootstrap3是...
标题 "TP5的PHPExcel包实现导入导出功能" 涉及到的是使用ThinkPHP5(简称TP5)框架结合PHPExcel库来处理Excel文件的导入和导出操作。这是一个常见的需求,特别是在数据处理、报表生成或者用户数据上传场景中。下面...
ThinkPHP5开发手册是一个全面的指南,不仅介绍了ThinkPHP的架构、配置、编程模型、数据库操作和模板引擎等核心内容,还涉及了安全、调试、缓存、扩展和部署等高级话题。学习这份手册,可以帮助开发者快速掌握...
【标题】"TP5+Avant响应式布局实战"是一个关于使用ThinkPHP5...通过这个实战教程,开发者可以掌握如何在TP5环境中有效利用Avant构建具有现代化用户体验的Web应用,同时加深对前后端协作的理解,提升项目开发效率。
在描述中提到的"tp5权限控制Auth",Auth是ThinkPHP5内建的一个认证和授权组件,用于处理用户身份验证和权限判断。通过Auth,开发者可以方便地实现如用户登录、权限分配、角色管理等功能。这个压缩包可能包含了完整的...
此外,TP5的模型层提供了ActiveRecord模式,让数据库操作变得简单,如CRUD(创建、读取、更新、删除)等操作只需要几行代码即可完成。 Layui的引入,为后台界面带来了现代感和专业感。Layui提供了一套完整的表格、...
这些信息将返回给前端,由用户进行支付操作。 5. **支付回调处理** 支付成功后,支付宝服务器会向你设定的回调URL发送通知,称为"同步通知"。你需要在项目中设置一个接收这个通知的接口,验证通知的合法性(通过...
在TP5中,这可能通过控制器操作数据库,获取用户的联系人列表,再由视图渲染成用户友好的界面。 6. **未读消息数量显示**:这是一个常见的用户体验优化功能,帮助用户了解哪些对话有新的未读消息。这通常需要后台...
标题中的"tp5精美博客前端"指的是基于ThinkPHP5(简称tp5)框架开发的一款精美的博客前端系统。ThinkPHP5是中国最流行的PHP框架之一,它提供了强大的MVC(Model-View-Controller)架构,方便开发者快速构建Web应用。...
Auth类库是tp5框架内用于用户权限验证的工具,它可以对用户的操作进行权限判断,例如检查用户是否有权限访问某个页面、执行某个操作。通过使用auth控制器,开发者可以构建一套完整的权限管理系统,实现用户角色、...
4. **数据库操作**:TP5提供了ORM(对象关系映射)支持,简化了SQL操作,方便进行数据的增删改查。 5. **模板引擎**:用于生成动态HTML,提高页面渲染效率,同时保持代码结构清晰。 此外,系统的开发过程中还可能...