Php 找不到CodeIgniter对象控制器

Php 找不到CodeIgniter对象控制器,php,.htaccess,codeigniter,codeigniter-3,Php,.htaccess,Codeigniter,Codeigniter 3,我正在使用codeIgniter 3.x。我加载了一个视图,其中包含一个提交到User.php控制器的表单,但每当我点击提交按钮时,它就会重定向到这个url,并且它总是给出找不到的对象!在此服务器上找不到请求的URL 下面是我的.htaccess文件 下面是config.php 下面是如何在Welcome.php视图中打开和关闭表单 下面是Users.php控制器 class Users extends CI_Controller { public function __construct()

我正在使用codeIgniter 3.x。我加载了一个视图,其中包含一个提交到User.php控制器的表单,但每当我点击提交按钮时,它就会重定向到这个url,并且它总是给出找不到的对象!在此服务器上找不到请求的URL

下面是我的.htaccess文件

下面是config.php

下面是如何在Welcome.php视图中打开和关闭表单

下面是Users.php控制器

class Users extends CI_Controller
{
public function __construct()
{
    parent::__construct();
    $this->load->helper(array('form','url'));
    $this->load->library(array('session', 'form_validation', 'email'));
    $this->load->database();
    $this->load->model('user_model');
    $this->load->view('user_registration_view');
}

function index()
{
    $this->register();
}
    function register()
{
    //set validation rules
    $this->form_validation->set_rules('fname', 'First Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
    $this->form_validation->set_rules('lname', 'Last Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
    $this->form_validation->set_rules('email', 'Email ID', 'trim|required|valid_email|is_unique[user.email]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|md5');
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim|required|matches[password]|md5');

    //validate form input
    if ($this->form_validation->run() == FALSE)
    {
        // fails
        $this->load->view('user_registration_view');
    }
    else
    {
        //insert the user registration details into database
        $data = array(
            'fname' => $this->input->post('fname'),
            'lname' => $this->input->post('lname'),
            'email' => $this->input->post('email'),
            'password' => $this->input->post('password')
        );

        // insert form data into database
        if ($this->user_model->insertUser($data))
        {
            // send email
            if ($this->user_model->sendEmail($this->input->post('email')))
            {
                // successfully sent mail
                $this->session->set_flashdata('msg','<div class="alert alert-success text-center">You are Successfully Registered! Please confirm the mail sent to your Email-ID!!!</div>');
                redirect('user/register');
            }
            else
            {
                // error
                $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
                redirect('user/register');
            }
        }
        else
        {
            // error
            $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
            redirect('user/register');
        }
    }
}

文件名应与类名用户相同。php类用户扩展CI_控制器

如果应用程序位于.htaccess文件显示的注册文件夹下,则需要执行以下操作

.htaccess 它与应用程序位于同一文件夹中。i、 e与system index.php文件位于同一文件夹中

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
因为您的URL是您在$config['base_URL']中正确设置的,应该可以正常工作

我刚刚创建了一个虚拟测试站点并进行了测试

让我知道这是否有效。

您的htaccess存在问题,请将其更改为默认值

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L]
和在配置中

$root=(isset($_SERVER["HTTPS"]) ? "https://" : "http://").$_SERVER["HTTP_HOST"];
$root.= str_replace(basename($_SERVER["SCRIPT_NAME"]), "", $_SERVER["SCRIPT_NAME"]);
$config["base_url"] = $root; 

我认为你在重定向时犯了错误

替换: 重定向“用户/寄存器”

与:
重定向“用户/注册”;或重定向“用户/注册”、“刷新”

显示user.php控制器文件。@urfusion done.first place die'here';在_构造中检查调用。@uFusion未打印任何内容。请在RewriteCond%{REQUEST_FILENAME}上使用此htaccess RewriteEngine重试-f RewriteCond%{REQUEST_FILENAME}-重写的规则^.*$index.php?/$1[L]应为users/registerdone,但仍不工作。我现在就编辑这篇文章@RiyenzIt有效!问题是.htaccess在应用程序文件夹中。它现在可以工作了,谢谢!我还更改了.htaccess的位置。配置中的代码做什么?主要问题是我的.htaccess文件在我的应用程序文件夹中。
class Users extends CI_Controller
{
public function __construct()
{
    parent::__construct();
    $this->load->helper(array('form','url'));
    $this->load->library(array('session', 'form_validation', 'email'));
    $this->load->database();
    $this->load->model('user_model');
    $this->load->view('user_registration_view');
}

function index()
{
    $this->register();
}
    function register()
{
    //set validation rules
    $this->form_validation->set_rules('fname', 'First Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
    $this->form_validation->set_rules('lname', 'Last Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
    $this->form_validation->set_rules('email', 'Email ID', 'trim|required|valid_email|is_unique[user.email]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|md5');
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim|required|matches[password]|md5');

    //validate form input
    if ($this->form_validation->run() == FALSE)
    {
        // fails
        $this->load->view('user_registration_view');
    }
    else
    {
        //insert the user registration details into database
        $data = array(
            'fname' => $this->input->post('fname'),
            'lname' => $this->input->post('lname'),
            'email' => $this->input->post('email'),
            'password' => $this->input->post('password')
        );

        // insert form data into database
        if ($this->user_model->insertUser($data))
        {
            // send email
            if ($this->user_model->sendEmail($this->input->post('email')))
            {
                // successfully sent mail
                $this->session->set_flashdata('msg','<div class="alert alert-success text-center">You are Successfully Registered! Please confirm the mail sent to your Email-ID!!!</div>');
                redirect('user/register');
            }
            else
            {
                // error
                $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
                redirect('user/register');
            }
        }
        else
        {
            // error
            $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
            redirect('user/register');
        }
    }
}
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L]
$root=(isset($_SERVER["HTTPS"]) ? "https://" : "http://").$_SERVER["HTTP_HOST"];
$root.= str_replace(basename($_SERVER["SCRIPT_NAME"]), "", $_SERVER["SCRIPT_NAME"]);
$config["base_url"] = $root;