lizole 发表于 2016-9-13 12:13:40

后台登录问题,登录会显示两次

class Admin extends CI_Controller {       
        public function __construct()
    {
      parent::__construct();
                $this->load->helper('cookie');
                $this->load->library('session');
                $this->load->model('stu_model');
                $this->load->model('th_model');
                if(!$this->allcklg()){
                        $this->login();
                }
    }
//登录页
        public function login(){
               
                if($this->allcklg()){
                        redirect('admin/index');
                }else{
                        $this->load->helper('captcha');
                        $vals = array(
                        'img_path' => './captcha/',
                        'img_url' => base_url().'captcha/',
                        'word_length'   => 2,
                        'expiration'    => 60,
                        'img_width' => '80'
                        );
                        $data['cap'] = create_captcha($vals);
                        $this->session->capword = $data['cap']['word'];
                        $this->load->view('admin/login',$data);
                }
               
        }

//登录通用验证
        public function allcklg(){
                $userid = $this->session->userid;
                if($userid){
                        return         $userid;
                }else{
                        return false;
                }
               
        }



如果没有登录,登录页打印了两次,如下:


请问如何修改,让它只显示一次。

燃雲 发表于 2016-9-13 12:13:41

把__construct()内的

if(!$this->allcklg()){

改为

if(!$this->allcklg() and $this->uri->segment(2) != 'login'){

即可

Closer 发表于 2016-9-13 13:46:37

問題在這邊


if(!$this->allcklg()){
    $this->login();
}


Hex 发表于 2016-9-13 14:05:43

登录的 URL 是什么?

lizole 发表于 2016-9-13 15:13:34

燃雲 发表于 2016-9-13 14:07
把__construct()内的

if(!$this->allcklg()){


谢谢,这个方法不错。 用这个解决了。
页: [1]
查看完整版本: 后台登录问题,登录会显示两次