think php 未登录,禁止访问页面 + 退出登录
![](http://www.cncsto.com/contentimg/5.jpg)
1.首先在Local创建一个基类控制器
D:\PHP\phpstudy_pro\WWW\1906A\pyg>php think make:controller goods/Base --plain
Controller created successfully.
2:判断页面是否有session值,,没有就跳转会登录页面,登录后进行访问
php namespace app\goods\controller; use think\Controller; use think\Request; class Base extends Controller { // public function __construct(Request $request = null) { parent::__construct($request); if (!session(‘?name‘)){ $this->error(‘您还没有登录,请登录后在进行访问.........‘,‘/goods/login/create‘); } } }
3:
、、、、、、、、表单页面的退出登录
php namespace app\goods\controller; use app\goods\model\GoodModel; use think\Controller; use think\Loader; use think\Request; use think\Validate; class Login extends Controller { //展示登录表单 public function create() { //goods/login/create //通过域名/模块名/控制器名/方法名访问登录页面 return view(); } //登录处理,验证参数 public function save(Request $request) { // $params = $request->param(); //验证参数、非空 $rule = [ ‘account‘ => ‘require‘, ‘password‘ => ‘require‘, ‘cord‘ => ‘require‘, ]; $tips = [ ‘account.require‘ => ‘账号不可以为空‘, ‘password.require‘ => ‘密码不可以为空‘, ‘cord.require‘ => ‘验证码不可以为空‘, ]; $validate = new Validate($rule, $tips); $result = $validate->check($params); if (!$result) { $this->error($validate->getError()); } //数据库验证参数 $data = GoodModel::login($params); //验证账号 if ($params[‘account‘] != $data[‘name‘]) { $this->error(‘账号错误‘, ‘/goods/login/create‘); } //验证密码 if (md5($params[‘password‘]) != md5($data[‘password‘])) { $this->error(‘密码错误‘, ‘/goods/login/create‘); } //验证码进行验证 if (!captcha_check($params[‘cord‘])) { $this->error(‘验证码输入错误‘, ‘/goods/login/create‘); }; if ($data) { //记录session session(‘name‘, $data[‘name‘]); $this->success(‘登录成功‘, ‘/goods/goods/index‘); } } //退出登录 public function loginOut() { //清除session session(‘name‘,null); //返回登录页面 $this->success(‘正在退出,请稍等‘,‘/goods/login/create‘); } }
//////////////////////表单登录页面
{__NOLAYOUT__} "en"> "UTF-8"> "viewport" content="width=device-width, initial-scale=1.0"> "X-UA-Compatible" content="ie=edge">登录 "stylesheet" href="__STATIC__/admin/css/login.css">
原文:https://www.cnblogs.com/xiaoyantongxue/p/15156531.html