如何修复Codeigniter中未找到请求的URL错误

时间:2019-01-23 06:19:20

标签: php codeigniter

我是Codeigniter的新手,我正在尝试使用它来构建注册页面。当我在控制器中调用函数时,服务器返回“在此服务器上未找到请求的URL / Users / actionRegister”错误。

我更改了.htaccess文件,并在apache模块上启动了rewrite_mode。

<?php echo form_open('Users/actionRegister'); ?>

    <div class="form-group">
        <input type="text" name="name" class="form-control" id="name" placeholder="Name">
    </div>
    <div class="form-group">
        <input type="text" name="username" class="form-control" id="username" placeholder="User Name">
    </div>
    <div class="form-group">
        <input type="text" name="email" class="form-control" id="email" placeholder="Email">
    </div>
    <div class="form-group">
        <input type="password" name="password" class="form-control" id="password" placeholder="Password">
    </div>
    <div class="form-group">
        <input type="password" name="confirm_password" class="form-control" id="confirm-password" placeholder="Confirm Password">
    </div>
    <div class="form-group pull-right">
        <button type="submit" id="register" class="btn btn-primary">Register</button>
    </div>
</div>
<?php echo form_close(); ?>

您能帮我解决此错误吗?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以检查是否在控制器上加载了帮助程序表单,这应该是这样的:

$this->load->helper('form');

在您编写代码<?php echo form_open('Users/actionRegister'); ?>时,可以在route.php(Users/actionRegister)上定义this file is located under application/config,以便于访问功能。您可以这样做:

$route['register'] = 'Users/actionRegister';

为了调用已定义的函数,您现在可以在form_open函数中调用base_url().'register'

请详细了解Configuring base_url in CI

在此之前,您必须编辑.htaccess文件才能识别CI中的路由。 像这样:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

我们将看看您是否能解决这个问题。

答案 1 :(得分:0)

首先,您应参考CodeIgniter user_guide正确命名文件

创建一个控制器(application/controllers/Users.php)并在其中添加一些代码:

<?php 
Class Users extends CI_Controller(){
    public function __construct(){
        parent::__construct();
    }
    public function index(){
        echo '<code>users/index/</code> is called';
    }

    public function actionRegister(){
        if($_POST){
            var_dump($_POST);
            }else{
            echo 'direct access to this function is not allowed';
        }
    }
}

然后像这样localhost/codeigniter/users/actionregister/

直接使用您的网址