2014-06-16 15 views
0

我正在爲我的項目使用php codeigniter。在我的登錄頁面中,如果用戶名和密碼無效,只需加載登錄頁面,否則加載主頁。如果無效,第一次加載登錄頁面再次給予登錄一個控制器名稱錯誤的細節,像本地圈像本地主機/項目名稱/管理者/管理員/ login_authentication URL添加登錄部分在php codeigniter中工作不正常

我的代碼是

function index() 
{ 
    if($this->session->userdata('usertype') != '') 
    { 
     redirect('administrator/administrator_view'); 
    } 
    else 
    { 
     $this->load->view('login'); 
    } 
} 
    function login_authentication() 
{ 

    $username=$this->input->post('username'); 
    $password=$this->input->post('password'); 
    $user = $this->administrator->admin_authentication($username,$password); 
    if(count($user) == 1) 
    { 

     foreach($user as $admin_value) 
     { 
      $user_name=$admin_value['UserName']; 
      $usertype=$admin_value['UserType']; 
     } 
     $session_data = array(
       'username' => $user_name, 
       'usertype' => $usertype, 
     ); 
     $this->session->set_userdata($session_data); 
     if($usertype == 1) 
     { 
      redirect('administrator/administrator_view'); 
     } 
    } 
    else 
    { 
     $data['Invalid_Login']="Invalid Username and Password"; 
     $this->load->view('login',$data); 
    } 

} 
function administrator_view() 
{ 
    if($this->session->userdata('usertype') == '') 
    { 
     redirect('administrator'); 
    } 
    else 
    { 
    $data['heading'] = ''; 
    $this->load->view('header', $data); 
    $this->load->view('dashboard', $data); 
    $this->load->view('footer'); 
    } 
} 

function admin_authentication($username, $password) 
{ 
    $this->db->select('*'); 
    $this->db->from('user'); 
    $this->db->where('UserName',$username); 
    $this->db->where('Password',$password); 
    $query = $this->db->get(); 
    return $query->result_array(); 
} 

我想給在URL中添加登錄每次一個控制器名稱不正確的信息多於一次

管理員認證功能。請幫幫我。

在此先感謝。

+0

這裏 – Anish

+0

發佈您的代碼,請複製粘貼此你的控制器代碼。 –

+0

只是編輯我的文章 – user3265980

回答

0

首先檢查是否有您的function login_authentication()一個POST請求是這樣的:

function login_authentication() 
{ 
    if($this->input->post(null)){ 
     //your authentication code here 
    }else{ 
     //load the login view here 
    } 
} 

這裏是你的函數:

function login_authentication(){ 
    if($this->input->post(null)){ //check if there is an post request 
     $username=$this->input->post('username'); 
     $password=$this->input->post('password'); 
     $user = $this->administrator->admin_authentication($username,$password); 
     print_r($user);die(); //the user array as returned from the model see if its correct or not 
     if(count($user) == 1) 
     { 

      foreach($user as $admin_value) 
      { 
       $user_name=$admin_value['UserName']; 
       $usertype=$admin_value['UserType']; 
      } 
      $session_data = array(
        'username' => $user_name, 
        'usertype' => $usertype, 
      ); 
      print_r($session_data);die; //see if it builds the correct array or not 
      //$this->session->set_userdata($session_data); 
      $this->session->set_userdata('user_info',$session_data); //to read the username use like $this->session->userdata['user_info']['username']; 
      if($usertype == 1) 
      { 
       redirect('administrator/administrator_view'); 
      } 
     }else{      //invalid credentials load the login view 
      $this->session->set_flashdata('Invalid_Login', 'Invalid username or password!'); //to echo in view use $this->session->flashdata('Invalid_Login'); 
      redirect('administrator', 'refresh'); 
     } 
    }else{       //redirect to index function now 
     redirect('administrator', 'refresh'); 
    } 
} 

在你的函數administrator_view()

function administrator_view(){ 
    if(!$this->session->userdata('user_info')){ 
     print_r($this->session->all_userdata());die('no session set redirecting'); //the session is not set here 
     redirect('administrator'); 
    } 
    else{ 
     $data['heading'] = ''; 
     $this->load->view('header', $data); 
     $this->load->view('dashboard', $data); 
     $this->load->view('footer'); 
    } 
} 
+0

問題仍在繼續 – user3265980

+0

也在您的問題中發佈您的模型功能。你正在設置會話錯誤。像這樣設置:'$ this-> session-> set_userdata('user_info',$ session_data);'。在你的project_root/index.php中將環境設置爲'development',這樣你就可以得到所有的錯誤來調試。 –

+0

做了一些更改PLZ檢查和回覆 –

0

變更

$this->session->set_userdata($session_data); 

$this->session->set_userdata(('some_name', $session_data); 

,並在所有區域中更改

if($this->session->userdata('usertype') == '') 

$ses = $this->session->userdata('some_name'); 
if($ses['usertype'] == '') 

,並嘗試....

+0

我嘗試這種格式,但問題沒有解決。 – user3265980