Codeigniter 3 表格未发布

Codeigniter 3 form not posting

*更新,none 的表格似乎 post 正确。他们都加载在操作中指定的任何 URL 没有 POST 数据可用。

我的应用 运行 在 Lamp 本地运行良好。一旦上传到我的实时服务器,登录表单将无法使用。我正在使用 CI3 和 Ion Auth 库。

我试过了 var_dump($_POST)

始终输出以下内容:

array(0) {

}

所以看起来表格不是 posting。我的表格:

<?php echo form_open("auth/login");?>
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon"><i class="fa fa-user"></i>
                                        </span>
                                        <?php echo form_input($identity);?>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon"><i class="fa fa-lock"></i>
                                        </span>
                                        <?php echo form_input($password);?>
                                    </div>
                                </div>
                                <button type="submit" class="btn btn-primary text-theme-xs mr-8">Login</button>
                                <?php echo form_checkbox('remember', '1', FALSE, 'id="remember"');?>
                                <a href="<?= site_url('auth/forgot_password') ?>" class="text-theme-xs pull-right a-black">Forgot your password ?</a>
                            </form>

post 到 URL 与显示表单的那个相同,正如我所说,它在 lamp 上工作正常。 Firebug 显示有关密码字段和不安全站点的错误,但我认为这不会阻止表单 posting?

我已经用 var_dump 替换了重定向,但没有任何反应,问题是没有 _POST 数据被发送。

控制器:

function login()
{
    $this->data['title'] = "Login";

    //validate form input
    $this->form_validation->set_rules('identity', 'Identity', 'required');
    $this->form_validation->set_rules('password', 'Password', 'required');

    if ($this->form_validation->run() == true)
    {
        //check to see if the user is logging in
        //check for "remember me"
        $remember = (bool) $this->input->post('remember');

        if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'), $remember))
        {
            //if the login is successful
            //redirect them back to the home page
            $this->session->set_flashdata('message', $this->ion_auth->messages());
            redirect('/', 'refresh');
        }
        else
        {
            //if the login was un-successful
            //redirect them back to the login page
            $this->session->set_flashdata('message', $this->ion_auth->errors());
            redirect('auth/login', 'refresh'); //use redirects instead of loading views for compatibility with MY_Controller libraries
        }
    }
    else
    {
        //the user is not logging in so display the login page
        //set the flash data error message if there is one
        $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message');

        $this->data['identity'] = array('name' => 'identity',
            'id' => 'identity',
            'type' => 'text',
                            'class' => 'form-control',
            'value' => $this->form_validation->set_value('identity'),
                            'placeholder' => 'Username',
        );
        $this->data['password'] = array('name' => 'password',
            'id' => 'password',
            'type' => 'password',
                            'class' => 'form-control',
                            'placeholder' => 'Password',
        );
                    $this->_render_page('templates/head', $this->data);
        $this->_render_page('templates/navbar', $this->data);
                    $this->_render_page('auth/login', $this->data);
                    $this->_render_page('templates/footer', $this->data);
    }
}

上面controller/view的html输出:

<form action="http://www.mydomain.uk/auth/login" method="post" accept-charset="utf-8">

  <p>
    <label for="identity">Email/Username:</label>    <input type="text" name="identity" value="" id="identity" class="form-control" placeholder="Username"  />
  </p>

  <p>
    <label for="password">Password:</label>    <input type="password" name="password" value="" id="password" class="form-control" placeholder="Password"  />
  </p>

  <p>
    <label for="remember">Remember Me:</label>    <input type="checkbox" name="remember" value="1" id="remember" />
  </p>


  <p><input type="submit" name="submit" value="Login"  />
</p>

</form>

我现在已经解决了这个问题,我对自己非常恼火,因为这是一个配置错误导致的简单修复。最费脑筋的问题不都是这样吗?

无论如何,如果其他人遇到同样的问题,请检查您的 site_url 配置。

我的设置为 http://www.example.com however the server redirected to http://example.com 因此使用 site_url 到 post 被重定向到丢失 post 数据的非 www 域。

现在是时候继续我周末应该做的事情了。

感谢大家的帮助

尝试启用 apache2 mod_rewrite 模块