ThinkPHP搭建cms-后台登录控制器代码编写

/**
* Class LoginController
* @package AdminController
* 后台用户登录
* @author wusn <message@jswusn.com>
*/
class LoginController extends Controller
{
/**
* 后台用户登录
* @author wusn < message@jswusn.com >
*/
public function login($username = null,$password = null,$code = null){
if(IS_POST){ //判断是否提交
/* 检测验证码 */
if(!check_verify($code)){
$this -> error('验证码错误!');
}else{
//自动验证
$rules=array(
array('username','require','用户名不能为空!'),
array('password','require','密码不能为空!'),
);
$db = M('manage');
if($db->validate($rules)->create()){
$userinfo=$db->where(array('username'=>$username))->find();//查找数据库中是否存在登录的用户
if($userinfo){
if(set_encrypt($password)===$userinfo['password']){//验证密码是否正确
$userarr['user_auth'] = array(
'uid' => $userinfo['id'],
'username' => $userinfo['username'],
'user_status' => $userinfo['status'],
);
if($userinfo['status']==1){//判断状态
//更新登录的时间与登录的IP
$update = array(
'last_login_time' => time(),
'last_login_ip' => get_client_ip(),
);
$db -> where(array('id'=>$userinfo['id'])) -> save($update);//更新登录时间与登录IP
//将登录的用户信息存入到session中
session('user_auth',$userarr['user_auth']);
session('user_auth_sign',data_auth_sign($userarr['user_auth']));//哈希算法将登录信息存入到session
//登录成功跳转到后台首页
$this -> success('登录成功!',U('Index/index'));
}else{
switch ($userinfo['status']){
case -1: $error = '用户不存在或被禁用!'; break; //系统级别禁用
case 0; $error = '参数错误!'; break;
default:$error = '未知错误!'; break;
}
$this -> error($error);
}
}else{
$this -> error('用户名或密码错误!');//密码错误
}
}else{
$this -> error('用户名或密码错误!');//用户不存在
}
}else{
//自动验证错误信息
$this -> error($db -> getError());
}
}
}else{
//判断是否登录
if(is_login()){
$this -> redirect('Index/index');
}else{
// echo set_encrypt('123456');die();
// p($_SESSION) ;
$this -> display();
}
}
}
/**
*@param 退出登录
*/
public function logout(){
if(is_login()){ //判断是否存在登录的用户ID
session('[destroy]'); //销毁session
$this -> success('退出成功!',U('login'));
}else{
$this -> redirect('login');
}
}
/**
* @param 验证码
*/
public function verify(){
$config = array(
'imageW' => 115, //验证码宽度
'imageH' => 35, //验证码高度
'fontSize' => 15, // 验证码字体大小
'length' => 4, // 验证码位数
'useNoise' => false, // 关闭验证码杂点
'fontttf' => '5.ttf',//验证码字体
);
$Verify = new ThinkVerify($config);
$Verify -> entry(1);
}
}









