2012-12-31 160 views
0

如果有人登錄,此代碼將檢查會話,並且我可以成功查看該頁面,但現在我想檢查用戶是否爲admin。我試着檢查模型下面是我已經嘗試過,它不工作。它檢查會話檢查管理員是否已登錄

方法,如果它的一個管理員

public function index() 
{ 
    $this->load->library('authlib'); 
    $loggedin = $this->authlib->is_loggedin(); 
    ///$admin = $this->auth->admin(); 

    if ($loggedin === false) { 
    $this->load->helper('url'); 
    redirect('/auth/login'); 
    } 
    if ($this->auth->admin() === false) { 
    $message ['msg'] = "You are not an admin!"; 
    $this->load->view('homeview', $message); 
    } 
    else 
    { 
    $this->load->view('add_view'); 
    } 
} 

驗證控制器

public function authenticate() 
{ 
$username = $this->input->post('uname'); 
$password = $this->input->post('pword'); 
$user = $this->authlib->login($username,$password); 
**>> $this->admin($username,$password); << passes the posted in values** 
if ($user !== false) { 
    $this->load->view('homeview',array('name' => $user['name'])); 

} 
else { 
    $data['errmsg'] = 'Unable to login - please try again'; 
    $this->load->view('login_view',$data); 
} 
} 

public function admin($username,$password){ 
//$this->load-model('usermodel'); 
$admin = $this->authlib->adminlib($username,$password); 
if ($admin == false){ 
return false; 
//if ($res->num_rows() != 1){ 
//return false; 
} 
} 

庫authlib的

public function adminlib($user,$pwd) 
{ 
return $this->ci->usermodel->chkadmn($user,$pwd); 
} 

模型

function chkadmn($username,$password) 
{ 
$this->db-where(array('username' => $username,'password' => sha1($password))); 
$res = $this->db->get('users',array('type')); 
if ($res->num_rows() != 1) { 
return false; 
} 
} 

做了一些改動,現在我得到「調用未定義的函數,其中()在C:\ XAMPP \ htdocs中\ ecwm604 \程序\型號\上線54 usermodel.php」

+1

立即跳出我的事情是,chkadmn是沒有參數聲明。但是如果你發佈了你得到的錯誤信息,你會有更好的運氣。 –

+0

有很多語法錯誤,1)'$ this-> auth-> admin()'你在哪裏加載了這個庫/模型? 2)'if($ this-> auth-> admin()== false){'沒有接近花括號。 3)在Auth Controller中,你在哪裏設置了'$ res'變量。 4)chkadmn函數沒有聲明參數,它不返回任何東西 –

+0

你應該打開php.ini文件中的PHP錯誤,看看你得到了什麼u.u –

回答

0

我個人會取代所有的,如果我會測試它,如圖所示:

public function index() 
    { 
     $this->load->library('authlib'); 
     $loggedin = $this->authlib->is_loggedin(); 
     ///$admin = $this->auth->admin(); 

     if (!$loggedin) { 
     $this->load->helper('url'); 
     redirect('/auth/login'); 
     } 

     if (!$this->auth->admin()) { 
     $message ['msg'] = "You are not an admin!"; 
     $this->load->view('homeview', $message); 
     } 
     else 
     { 
     $this->load->view('add_view'); 
     } 

    } 

    public function admin(){ 
    $this->load-model('usermodel'); 
    $admin = $this->usermodel->chkadmn($username,$password); 
    if (!$admin){ 
    return false; 
    //if ($res->num_rows() !== 1){ 
    //return false; 
    } 
    } 

    function chkadmn($username,$password) 
    { 
    $this->db-where(array('username' => $username,'password' => sha1($password))); 
    $res = $this->db->get('users',array('type')); 
    if ($res->num_rows() !== 1) { 
    return false; 
    } 
    }