2013-02-14 77 views
0

我正在使用codeIgniter。我正在創建一個登錄表單,用於檢查數據庫中的成員詳細信息。CodeIgniter 404錯誤的請求錯誤

然而,當我點擊登錄我收到此錯誤信息:

The requested URL /waitronmain/login.php/login/validate_credentials was not found on this server. 

但是這是我的login.php文件,你可以看到validate_credentials()確實存在。

class Login extends CI_Controller{ 


function index() 
{ 
    $data['main_content'] = 'login_form'; 
    $this->load->view('includes/template', $data); 
} 

function validate_credentials() 
{ 
    //load model to query db 
    $this->load->model('membership_model'); 
    $query = $this->membership_model->validate(); 

    if($query){ //if credentials validated 
     $data = array(
      'username' => $this->input->post('username'), 
      'is_logged_in' => true 

      ); 

      $this ->session->set_userdata($data); 
      redirect('site/members_area'); 
    } 

    else{ //if not validated load login form again. 
     $this->index(); 

    } 

} 

}

任何想法是怎麼回事?我應該進入'members_area'頁面,因爲我知道我輸入的細節是正確的。

任何幫助將不勝感激。

+0

什麼與'/ login.php/index.php'部分的網址?這是你的真實網址嗎?無論如何,這個問題可能是你在你的url中使用了一個下劃線'_'。你應該使用破折號'validate-credentials'。我不認爲一個控制器函數名可以在它們中有一個破折號,所以你將需要使用一個路由(routes.php)來連接URL validate-credentials和方法validate_credentials。 – Jeemusu 2013-02-14 01:10:19

+0

抱歉,由於未在'config.php'文件中設置正確的索引頁,因此導致網站混亂。我更新了我的問題中的網址。我不確定如何使用'routes.php'文件來連接網址。你能舉個例子嗎? – Javacadabra 2013-02-14 01:15:38

+0

爲什麼它被命名爲'login.php'?它應該被命名爲'index.php',因爲這是處理所有請求的主要文件,並且會正確加載Login類。 – 2013-02-14 01:26:22

回答

0

這是什麼?

/waitronmain /login.php/登錄/ validate_credentials

的login.php應不URL,我認爲你應該做的:

/waitronmain/login/validate_credentials 

(假設你刪除從URL中的index.php,你是waitronmain內/根)