1. 程式人生 > >ThinkPHP3.2.3--登入與退出登入

ThinkPHP3.2.3--登入與退出登入

一 登入

LoginController.class.php:

    public function index(){
        $admin=D('admin');//例項化資料庫
        if(IS_POST){
            if($admin->create($_POST,4)){//驗證輸入的內容:使用者名稱/密碼/驗證碼
                if($admin->login()){
                    $this->success('登入成功!跳轉中...',U('Index/index'));//也可以直接跳轉
}else{ $this->error("使用者名稱或者密碼不存在!"); } }else{ $this->error($admin->getError()); } return; } if(session('id')){ $this->error('您已經登入,請勿重複登入!',U('Index/index'
)); }else{ $this->display(); } }

AdminModel.class.php:

<?php
namespace Admin\Model;
use Think\Model;
class AdminModel extends Model {
    protected $_validate = array(
        array('username','require','管理員名稱不得為空!',1,'regex',3), //預設情況下用正則進行驗證
        array('username'
,'','管理員名稱已存在!',1,'unique',3), array('password','require','密碼不得為空!',1,'regex',1), //上面的是註冊時驗證 //下面的是登入時驗證 array('username','require','管理員名稱不得為空!',1,'regex',4), array('password','require','密碼不得為空!',1,'regex',4), array('verify','check_verify','驗證碼錯誤!',1,'callback',4), ); public function login(){ $password=$this->password; $info=$this->where(array('username'=>$this->username))->find(); if($info){ if($info['password']==md5($password)){ session('id',$info['id']); session('username',$info['username']); return true; } }else{ return false; } } public function check_verify($code,$id=''){ $verify=new \Think\Verify(); return $verify->check($code,$id); } }

二 退出登入

    public function logout(){
        session(null);
        $this->success('退出成功!跳轉中...',U('Login/login'));
    }