public function index(){
if(IS_POST){
$admin=D('Admin');
if($admin->create($_POST,4)){
// dump($admin->create($_POST,4));
// die;
if($admin->login()){
$this->success('登陆成功',U('Index/index'));
}else{
$this->error('用户名或密码错误!');
}
}else{
$this->error($admin->getError());
}
return ;
}
$this->display();
}
这个是登录控制器里面的方法,用于接收登录界面传来的账号和密码,$admin->create($_POST,4)为什么用4呢,因为在管理员这个控制器里面时,有model模型,有添加数据,编辑数据,还有所有情况的附加条件,而登录这是第四种气矿防止进行自动验证,重点是login()这个方法的编写,转到admin这个模块里面
public function login(){
$password = $this->password;
// dump($this->username);
// die;
$data['username']=$this->username;
$info = $this->where($data)->find();
// dump($info);
// die;
if($info){
if($info['password']==md5($password)){
session('id',$info['id']);
session('username',$info['username']);
return true;
}else{
return false;
}
}else{
return false;
}
$this->password代表前台接受的密码,$this->username代表接受前台的账号,然后记录在data数组里面然后查询¥admin里面username=$this->username这一行的数据,
如果¥info这个数据不为空说明存在这个账号否则不存在返回false,如果摩玛等于加密之后的密码,name就把这个账号存在session数组里面
突出的话也很贱蛋清除session里面的值就行了
public function layout(){
session(null);
$this->redirect('Login/index');
}