0

所以我开始了我的第一个 CodeIgniter 项目,我还在学习很多东西。现在我已经制作了这个用户注册页面。

当用户填写注册表单并按下提交时,将触发以下功能:

/**
* Signup validation
*/
public function signup_validation(){
    $this->load->library('form_validation');

    $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[users.email]');
    $this->form_validation->set_rules('password', 'Password', 'required|trim');
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');

    $this->form_validation->set_message('is_unique', "That email address is already is use");

    if($this->form_validation->run()){
        $this->load->model('model_users');

        if ($this->model_users->add_user()){
            echo "user has been added";
        } else {
            echo "Something went wrong";
        }

        $this->model_users->add_user();
    } else {
        $this->load->view('view_signup');
    }
}

然后这个函数调用“model_users”并运行函数“add_user”:

public function add_user(){
    $data = array(
        'email' => $this->input->post('email'),
        'password' => $this->input->post('password')
    );

    $query = $this->db->insert('users', $data);

    if ($query){
        return true;
    } else {
        return false;
    }
}

所以这段代码很好地添加了数据库中的数据。验证效果很好。但由于某种原因,它会将每个用户添加两次。我试图找出导致此问题的原因,但我似乎无法找出原因。

我还创建了另一小段代码,您可以在其中将页面类别添加到数据库中,代码非常相似,但不会发布两次。

4

2 回答 2

2

你打电话

$this->model_users->add_user()

两次。

一次在 if 语句中作为条件,然后再次在 else 之后。删除第二个调用。

于 2013-11-12T07:49:34.477 回答
2

$this->model_users->add_user() 在 if() 内部调用两次,在 if else 之后调用一次。

    if ($this->model_users->add_user()){
        echo "user has been added";
    } else {
        echo "Something went wrong";
    }

    $this->model_users->add_user();

我想你想删除下面的。

于 2013-11-12T07:47:01.987 回答