CodeIgniter表单验证无法提交

时间:2016-03-12 04:25:38

标签: php codeigniter validation

我正在努力学习CodeIgniter,并且遇到了一些打嗝。 我的登录页面(非常基本)出现了。但是,当我单击提交按钮以运行form_validation时,页面将刷新,然后给出ERR_CONNECTION_REFUSED错误。

主登录的URL类似于localhost / xxxx / xxxx / index.php / main。 当我提交表单时,它会更改为localhost / xxxx / xxxx / main / login_validation

我已经加载了数据库'和'会议'进入我的自动加载库,以及'形式'和' url'进入自动加载助手。

我也进入.htaccess并使用重写mod将RewriteBase更改为/ xxxx / xxxx /

我不确定我是否需要在配置或路由文件中更改其他内容...我们非常感谢任何帮助!

main.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {

    public function index()
    {
        $this->login();
    }

    public function Login(){

        $this->load->view('login');
    }

    public function Members(){
        $this->load->view('members');
    }

    public function Login_validation(){

        $this->load->library('form_validation');

        $this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'required|md5|trim');

        if($this->form_validation->run()){
            redirect('main/members');

        } else{
            $this->load->view('login');
        }

    }
}

的login.php

    <h1>Login</h1>

    <?php

    echo form_open('main/login_validation');

    echo validation_errors();

    echo "<p>Email ";
    echo form_input('email');
    echo "</p>";

    echo "<p>Password ";
    echo form_password('password');
    echo "</p>";

    echo "<p>";
    echo form_submit('login_submit', 'Login');
    echo "</p>";

    echo form_close();

    ?>

2 个答案:

答案 0 :(得分:0)

尝试将main.php更改为Main.php,以避免在unix服务器上找不到控制器,但不确定其是ERR_CONNECTION_REFUSED的原因。这可能是压缩问题。如果已启用

,请先尝试禁用压缩
 $config['compress_output'] = FALSE ;

如果在启用压缩的同时在最终输出之前回显某些内容,则可能会获得ERR_CONNECTION_REFUSED。 此外,如果您在Login_validation()中重定向, 注释掉重定向并检查表单提交时是否发生任何错误。 如果我可能会问为什么命名你的方法,如

Login_validation()

相反

login_validation()

答案 1 :(得分:0)

好的改变

echo form_open('main/login_validation');

echo form_open( site_url('main/login_validation'));