ThinkPHP3.2.3--登入與退出登入
阿新 • • 發佈:2018-12-24
一 登入
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'));
}