2012-11-08 96 views
0

我有困難與codeigniter設置管理部分。codeigniter管理面板文件結構

我剛剛在名爲fam_Admin的控制器文件夾中添加了一個新文件夾。

所以結構是像以下:

-controllers
---> fam_admin
----> - 的login.php

在routes.php文件添加以下代碼: $route['fam_admin'] = "fam_admin/login";

<?php 
class Login extends CI_Controller { 
    public function index() { 
    //$login['main_content'] = '/fam_admin/login'; 
    //$this -> load -> view('fam_admin/includes/template', $login); 
    $this -> load -> view('fam_admin/login'); 
    } 
    public function validate_login() { 
    $username = $this -> input -> post('username'); 
    $password = $this -> input -> post('password'); 
    $this -> load -> library('form_validation'); 
    $this -> form_validation -> set_rules('username', 'username', 'trim|required'); 
    $this -> form_validation -> set_rules('password', 'password', 'trim|required|callback_credential_check'); 
    if ($this -> form_validation -> run() == FALSE) { 
     $this -> load -> view('fam_admin/login'); 
    } 
    } 
    public function credential_check() { 
    //Field validation succeeded.&nbsp; Validate against database 
    $username = $this -> input -> post('username'); 
    $password = $this -> input -> post('password'); 
    $this -> load -> model('fam_admin/admin'); 
    //query the database 
    $query = $this -> admin -> check_login($username, $password); 
    if (!$query) { 
     $this -> form_validation -> set_message('login_check', 'Invalid username or password'); 
     return false; 
     $this -> index(); 
    } else { 
     $data = array(
     'username' => $this -> input -> post('username'), 
     'is_logged_in' => true 
    ); 
     $this -> session -> set_userdata($data); 
     //redirect('fam_admin/main_section'); 
     redirect('site/logged_in'); 
    } 
    } 
} 
?> 

以上是對代碼的login.php但是當登錄憑證被驗證其連鎖行業es在谷歌瀏覽器中出現以下錯誤。你可以通過輸入錯誤的憑據來嘗試它,它會給你錯誤並加載相同的登錄表單。

該網站在檢索http://www.famtripsandinspectionvisits.com/index.php/fam_admin/login/validate_login時遇到錯誤。它可能因維護而關閉或配置不正確。

+0

你有一個名爲「main_section」在'fam_admin/main_section.php'控制器?我沒有看到代碼中的任何內容表明「main_section」應該加載任何東西。你甚至將重定向註釋掉了,你確定你給了我們正確的細節嗎?還有,你打開錯誤報告和display_errors? –

+0

我現在編輯了代碼。我正在嘗試一些內容,因此在發佈的代碼中出現錯誤。 – Sahil

+0

你的意思是在php.ini文件中的錯誤報告? – Sahil

回答

1

一方面,這是一個問題:

if (! $query) { 
    // ... 
    return false; 
    $this -> index(); 
} 

一旦你return的東西,這就是它 - 代碼的其餘部分將不會運行 - 這樣的index方法不會被調用,並有根本沒有輸出。

...但是,您不應該在應該處理數據驗證的函數中加載視圖。

我會重新安排的事情了一下,嘗試你的控制器簡化到這一點:

class Login extends CI_Controller { 

    public function index() 
    { 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('username', 'username', 'trim|required'); 
     $this->form_validation->set_rules('password', 'password', 'trim|required'); 
     if ($this->form_validation->run()) 
     { 
      $this->load->model('fam_admin/admin'); 
      $username = $this->input->post('username'); 
      $password = $this->input->post('password'); 
      $query = $this->admin->check_login($username, $password); 
      if ($query) 
      { 
       $data = array(
        'username' => $this->input->post('username'), 
        'is_logged_in' => true 
       ); 
       $this->session->set_userdata($data); 
       redirect('site/logged_in'); 
      } 
      else 
      { 
       $this->form_validation->set_message('login_check', 'Invalid username or password'); 
      } 
     } 
     $this->load->view('fam_admin/login'); 
    } 

} 
+0

以上試過它沒有工作,然後我打開了錯誤,錯誤是在我的模型中的MD5功能。上面的代碼清理了y代碼,並將在未來幫助我。 – Sahil

+0

是的,即使沒有這個錯誤,你會有另一個。對不起,以前不清楚,開發時需要這些設置:'error_reporting(E_ALL); ini_set('display_errors','On');'當你上線時關掉'display_errors',並將錯誤報告轉爲適當的級別進行記錄。 –