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'頁面,因爲我知道我輸入的細節是正確的。
任何幫助將不勝感激。
什麼與'/ login.php/index.php'部分的網址?這是你的真實網址嗎?無論如何,這個問題可能是你在你的url中使用了一個下劃線'_'。你應該使用破折號'validate-credentials'。我不認爲一個控制器函數名可以在它們中有一個破折號,所以你將需要使用一個路由(routes.php)來連接URL validate-credentials和方法validate_credentials。 – Jeemusu 2013-02-14 01:10:19
抱歉,由於未在'config.php'文件中設置正確的索引頁,因此導致網站混亂。我更新了我的問題中的網址。我不確定如何使用'routes.php'文件來連接網址。你能舉個例子嗎? – Javacadabra 2013-02-14 01:15:38
爲什麼它被命名爲'login.php'?它應該被命名爲'index.php',因爲這是處理所有請求的主要文件,並且會正確加載Login類。 – 2013-02-14 01:26:22