日期:2014-05-17  浏览次数:20608 次

下面这段PHP后台登陆代码实现免登陆
如果后台管理员帐号为admin,密码为123456请问下面这段代码如何实现免登陆,麻烦知道的大哥直接给代码谢谢了


PHP code
<?php
class LoginAction extends BaseAction{
    //默认操作
    public function index(){
        if ($_SESSION[C('USER_AUTH_KEY')]){
            redirect("index.php?s=Admin-Index");
        }    
        $this->display(APP_PATH.'/Public/admin/login.html');
    }
    
    //生成验证码
    public function vcode(){
        import("ORG.Util.Image");
        Image::buildImageVerify();//6,0,'png',1,20,'verify'
    }
    
    //登录检测
    public function check(){
        if(empty($_POST['user_name'])){$this->error('帐号必须!');}
        if(empty($_POST['user_pwd'])){$this->error('密码必须!');}
        if(function_exists('gd_info')){
            if(empty($_POST['verify'])){$this->error('验证码必须!');}
            if($_SESSION['verify']!=md5($_POST['verify'])){$this->error('验证码错误!');}
        }
        //生成认证条件
        $map=array();
        //支持使用绑定帐号登录
        $map['admin_name']=$_POST['user_name'];
        //$map["user_status"]=array('gt',0);//状态
        $rs=D("Admin.Admin");
        $authInfo=$rs->where($map)->find();
        //使用用户名、密码和状态的方式进行认证
        if(false === $authInfo) {
            $this->error('帐号不存在或已禁用!');
        }else {
            if($authInfo['admin_pwd']!=md5($_POST['user_pwd'])){
                $this->error('密码错误!');
            }
            // 缓存访问权限
            $_SESSION[C('USER_AUTH_KEY')]=$authInfo['admin_id'];
            $_SESSION['admin_ok']=$authInfo['admin_ok'];
            $_SESSION['admin_name']=$authInfo['admin_name'];            
            //$_SESSION['email']=$authInfo['admin_email'];
            //$_SESSION['lastLoginTime']=$authInfo['admin_logintime'];
            //$_SESSION['login_count']=$authInfo['admin_count'];
            //if($authInfo['user_name']=='admin') {
                //$_SESSION['administrator']        =    true;
            //}    
            //保存登录信息
            $ip=get_client_ip();
            $data=array();
            $data['admin_id']=$authInfo['admin_id'];
            $data['admin_logintime']=time();
            $data['admin_count']=array('exp','admin_count+1');
            $data['admin_ip']=get_client_ip();
            $rs->save($data);
            redirect('index.php?s=Admin-Index');                    
        }
    }    
    
    // 用户登出
    public function logout(){
        if(isset($_SESSION[C('USER_AUTH_KEY')])) {
            unset($_SESSION[C('USER_AUTH_KEY')]);
            unset($_SESSION);
            session_destroy();
            $this->assign('jumpUrl','index.php?s=Admin-Login');
            $this->success('登出成功!');
        }else {
            $this->error('已经登出!');
        }
    }        
}
?>


------解决方案--------------------
改写 index 方法为
PHP code
    public function index(){
        if ($_SESSION[C('USER_AUTH_KEY')]){
            redirect("index.php?s=Admin-Index");
        }
        //$this->display(APP_PATH.'/Public/admin/login.html');
    
        $_POST['user_name'] = 'admin';
        $_POST['user_pwd'] = '123456';
        $_POST['verify'] = 1;
        $_SESSION['verify'] = md5($_POST['verify']);
        $this->check();
   }