<?php
namespace Admin\Controller;
use Think\Model;
class UserModel extends Model{
public function login(){
//用户名和密码
$username = I("post.username");
$$password = I("post.password");
//验证用户信息
$info = $this->where(array('username'=>$username))->find();
if($info){
//双MD5加密
if($info['password']==md5(md5($password) .$info['salt'])){
//记录登录标识
session('id',$info['id']);
session('username',$info['username']);
return true;
}else{
return 2;//密码错误
}
}else{
return 1;//用户信息不存
}
}
}
?>
<?php
namespace Admin\Controller;
use Think\Controller;
class BackController extends Controller{
public function login(){
// 载入一个登录的页面
if(IS_POST){
$userModel =D("User");
$status = $userModel->login();
//true 代表成功 1代表用户不存在2代表密码错误
if($status === true){
$this->success('登陆成功',U('Goods/lst'));exit();
}else if($status === 1){
$this->error('登录失败,用户名不存在');
}elseif($status === 2){
$this->error('登录失败,密码错误');
}
}
$this->display();
}
}
?>
加密算法:
TP内置的加密的类(堆成加密)
public function test24(){
$cryptObj = new Crypt();
$password= 'admin88';
$key=1;
$mw = $cryptObj->encrypt($password,$key);
dump($mw);
}
public function test25(){
$mw = 'xxxaadsasdasdasd';
$key=1;
$cryptObj = new Crypt();
$ss=$cryptObj->decrypt($mw,$key);
dump($ss);
}
登录的验证码
使用TP内置的自动验证完成登录时候表单的验证信息,同时做一个验证的使用
1.在BackController.class.php定义一个code方法,生成一个验证
public function code(){
$config= array(
'fontSize' => 30, //验证码的字体大小
'length'=> 3, //验证码的位数
'useNoise'=> false, // 关闭验证码杂点
);
$Verify=new \Think\Verify($config);
$Verify->entry();
}
2.在login.html页面调用上面的code方法
3.在BackController.class.php的login方法里面进行验证