Codeigniter 3表格不发布

时间:2015-07-11 15:18:35

标签: php codeigniter ion-auth codeigniter-3

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

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

我试过了 var_dump($_POST)

始终输出以下内容:

array(0) {

}

所以表格似乎没有张贴。我的表格:

<?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>

帖子到网址与显示表单的帖子相同,正如我所说,它在灯上工作正常。 Firebug显示有关密码字段和不安全站点的错误,但我认为这不会阻止表单发布?

我已经用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);
    }
}

来自abiove控制器/视图的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>

2 个答案:

答案 0 :(得分:0)

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

无论如何,对于遇到相同问题的其他人,请在配置中检查您的site_url。

我的设置为http://www.example.com但是服务器重定向到http://example.com,因此使用site_url发布以重定向到非www域丢失帖子数据。

现在是时候继续我周末所做的事了。

感谢大家尝试提供帮助

答案 1 :(得分:0)

尝试启用apache2 mod_rewrite模块