简体   繁体   English

使用Codeigniter进行注册时遇到问题

[英]Trouble with registration using codeigniter

I have a registration form for my website, and it is showing username, password and password confirmation required although i am providing all of these. 我有一个网站注册表格,尽管我提供了所有这些,但它显示了用户名,密码和密码确认。 This is the controller code: 这是控制器代码:

{

    $this->load->library('form_validation');
    $this->form_validation->set_rules('username','Username','trim|required|min_length[4]|xss_clean');
    $this->form_validation->set_rules('email','Email','trim|required|valid_email');
    $this->form_validation->set_rules('pass1','Password','trim|required|min_length[4]|max_length[32]');
    $this->form_validation->set_rules('pass2','Password Confirmation','trim|required|matches[pass1]');

    if ($this->form_validation->run() === FALSE)
    {
        $password = $this->input->post('pass1');

        echo json_encode(array('error' => '1', 'message' => validation_errors('<div class="alert alert-error"><strong>Error!</strong> ', '</div>')));
    }
    else
    {
        $username = $this->input->post('username');
        $password = $this->input->post('pass1');

        $email = $this->input->post('email');
        $date = date('Y/m/d H:i:s');

        $this->load->model('ui_model');
        $this->ui_model->register_user($username,$password,$email,$date);

        echo json_encode(array('error' => '0', 'message' => '<div class="alert alert-success"><strong>Success!</strong> You have been registered!</div>'));

    }

and this is the view code: 这是视图代码:

<div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3>Registration</h3>
    </div>
    <div class="modal-body">
        <div id="registerModalerror" style="display: none;"></div>
        <?php
            $attributes = array('class' => 'form-horizontal','id' => 'registerModalform');

            echo form_open('',$attributes);
        ?>
        <div class="control-group">
            <label class="control-label" for="Username">Username</label>
            <div class="controls">
                <div class="input-prepend">
                    <span class="add-on"><i class="icon-user"></i></span>
                    <input type="text" id="inputUser" placeholder="Username" name="username" value ="" >
                </div>
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" for="inputEmail">Email</label>
            <div class="controls">
                <div class="input-prepend">
                <span class="add-on"><i class="icon-envelope"></i></span>
                <input type="text" id="inputEmail" placeholder="email" name="email" value = "">
                </div>
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" for="inputPassword">Password</label>
            <div class="controls">
                <div class="input-prepend">
                <span class="add-on"><i class="icon-lock"></i></span>
                <input type="password" id="inputPassword" placeholder="Password" name="pass1" value = "">
                </div>
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" for="inputPassword2">Retype Password</label>
            <div class="controls">
                <div class="input-prepend">
                <span class="add-on"><i class="icon-lock"></i></span>
                <input type="password" id="inputPassword2" placeholder="Retype Password" name="pass2" value = "">
                </div>
            </div>
        </div>

        <div class="control-group">

            <div class="controls">
                <button type="submit" class="btn">Register</button>
            </div>
        </div>
    </div>
    <?php echo form_close(); ?>
    <div class="modal-footer">


    </div>

</div>

<script>
    $(document).ready(function() {
             $('#myModalReg').removeData('modal');
             $('#myModalReg').hide();
             $('#registerModalform').submit(registerUser);


        });

        function registerUser(event)
        {
            //Stop the form from submitting
            event.preventDefault();

            //Collect our form data.
            var form_data = {
                username : $("[name='username']").val(),
                password1 : $("[name='pass1']").val(),
                password2 : $("[name='pass2']").val(),
                email : $("[name='email']").val()
            };

            //Begin the ajax call
            $.ajax({
                    url: "http://localhost/fys/index.php/ui/do_register",
                    type: "POST",     
                    data: form_data,
                    dataType: "json",
                    cache: false,
                    async : false,

                    success: function (json) {  
                        // alert(json.pass);    
                        if (json.error==1)
                        {
                           $('#registerModalerror').html(json.message).show();
                        } 
                        else {
                            //Hide our form
                            $('#registerModalform').slideUp();
                            //Show the success message
                            $('#registerModalerror').html(json.message).show();
                        }             
                    },

                    error: function(json)
                    {
                        alert(json.message);
                    }
            });
        }

</script>

I am not sure where it went wrong, and it is bugging me for almost 24 hours. 我不确定哪里出了问题,并且困扰了我将近24小时。 Can anyone provide some help? 谁能提供帮助?

Thanks! 谢谢!

Your POST object is 您的POST对象是

{
    username : $("[name='username']").val(),
    password1 : $("[name='pass1']").val(),
    password2 : $("[name='pass2']").val(),
    email : $("[name='email']").val()
}

But your Controller's POST name is pass1 and pass2 . 但是您控制器的POST名称是pass1pass2 You're passing up password1 and password2 您正在传递password1password2

:P :P

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM