CodeIgniter 404错误的请求错误

问题描述:

我正在使用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

这是什么?

/waitronmain /login.php/登录/ validate_credentials

的login.php应不URL,我认为你应该做的:

/waitronmain/login/validate_credentials 

(假设你删除从URL中的index.php,你是waitronmain内/根)