Php Codeigniter验证不适合我

时间:2011-11-14 14:58:10

标签: php codeigniter

嗨,我正在学习代码点火器,我几乎是新手,我有代码点火器验证的问题。我无法弄清楚我做错了什么,请指导我。 目前正在发生的事情是,每当我提交空字段时,我被重定向到同一页面,但当我填充字段时,我被重定向到同一页面,但页面是空白的。 这是我的用户类

class User extends CI_Controller {

    function User() {
        parent::__construct();

        $this->view_data['base_url'] = base_url();
    }

    function index() {

        $this->register();
    }

    function register() {

        $this->load->library('form_validation');
        $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]');
        if ($this->form_validation->run() == false) {
            $this->load->view('view_register', $this->view_data);
        } else {
            $username=$this->input->post('username');
        }
    }

}

这是我的view_register.php(查看)

<body>
    <h1>User Registration</h1>
    please fill in following details
    <?php
    echo form_open(base_url().'user/register');
    ?>
    <?php
    $username = array(
        'name' => 'username',
        'id' => 'username',
        'value' => ''
    );
    $password = array(
        'name' => 'password',
        'id' => 'password',
        'value' => ''
    );
    $con_password = array(
        'name' => 'con_password',
        'id' => 'con_password',
        'value' => ''
    );
    $email = array(
        'name' => 'email',
        'id' => 'email',
        'value' => ''
    );
    ?>

    <ul>
        <li>
            <label>Username</label>
            <div>
                <?php echo form_input($username); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <label>Email</label>
            <div>
                <?php echo form_input($email); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <label>Password</label>
            <div>
                <?php echo form_password($password); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <label>Confirm</label>
            <div>
                <?php echo form_password($con_password); ?>
            </div>
        </li>
    </ul>
    <ul>
        <li>
            <div>
                <?php echo form_submit(array('name' => 'register'), 'Register'); ?>
            </div>
        </li>
    </ul>
    <?php echo form_close(); ?>
</body>

1 个答案:

答案 0 :(得分:1)

因为验证是正确的,所以你没有加载视图,所以CI再次调用该控制器,但什么也没有显示:

function register() {

    $this->load->library('form_validation');
    $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]');

    if ($this->form_validation->run() == false)
    {
        $this->load->view('view_register', $this->view_data);
    } else
    {
        $username=$this->input->post('username');
        $this->load->view('success');  // <------ put your view for success here
    }
}

此外,您应该使用此代码而不是代码打开表单:

 echo form_open('user/register');

它本身就是正确的url(对于site_url()来说是异常的);

尝试在用户名输入下放置echo form_error('username')以显示验证错误。