所有的控制器继承BaseController,BaseController继承\think\controller
在控制器BaseController中写出事函数
public function _initialize(){ if(!session('username')){ $this->error('请先登陆','login/index');//未登录则自动跳转到登陆页面 } }
在控制器login中:
/** * 登陆功能 */ public function login(){ (new captchaValidate())->captchaCheck();//后台验证验证码 $request = Request::instance(); $data = $request->param();//获取前台传过来的值 $res = $this->obj->get( ['username'=>$data['username']] );//数据库中查找密码是否存在和正确 if($res['password']==md5($data['password'])){ $this->obj->save(['status'=>1],['username'=>$data['username']]); session('username',$data['username']);//存储session return $this->success('登陆成功','index/index'); }else{ return $this->error('密码错误'); } }
这样只要继承BaseController控制器的跳转的页面都会检测用户是否登陆