【问题标题】:CodeIgniter 404 Bad request errorCodeIgniter 404 错误请求错误
【发布时间】:2013-01-29 17:50:14
【问题描述】:

我正在使用 codeIgniter。我正在制作一个登录表单,用于检查数据库中的成员详细信息。

但是,当我点击登录时,我收到以下错误消息:

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 部分是什么?那是你的实际网址吗?无论如何,问题可能是您在您的网址中使用了下划线_。您应该使用破折号validate-credentials。我认为控制器函数名称中不能包含破折号,因此您需要使用路由(routes.php)将 url validate-credentials 与方法 validate_credentials 连接起来。
  • 抱歉,由于没有在 'config.php' 文件中设置正确的索引页面,导致 URL 混乱。我更新了问题中的 URL。我不确定如何使用“routes.php”文件连接 url。你能举个例子吗?
  • 为什么叫login.php?它应该被命名为index.php,因为它是你的主文件,它处理你的所有请求并将正确加载登录类。
  • 我将默认索引页面更改为login.php,而不是index.php。这就是为什么我这样命名它。
  • 我一会儿就回来,我要出去了,不想让你以为我放弃了=o)。如果到我回来的时候还没有解决这个问题,我会看看我能做些什么。

标签: codeigniter http-status-code-404 php


【解决方案1】:

这是什么??

/waitronmain/login.php/login/validate_credentials

login.php 不应该在 url 我认为你应该这样做:

/waitronmain/login/validate_credentials

(假设您从 url 中删除了 index.php 并且您在 waitronmain/ root 中)

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 1970-01-01
    • 2023-01-05
    • 2015-07-31
    • 2014-12-23
    • 2014-03-25
    • 2013-05-23
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多