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;
    }
}

したがって、このコードはデータベースにデータを追加します。検証はうまく機能します。しかし、何らかの理由で、すべてのユーザーを 2 回追加します。この問題の原因を突き止めようとしましたが、理由がわからないようです。

ページカテゴリをデータベースに追加できる別の小さなコードも作成しました。コードは非常に似ていますが、2 回投稿することはありません。

4

2 に答える 2

2

あなたが呼ぶ

$this->model_users->add_user()

二回。

条件として if ステートメントで 1 回、else の後にもう一度。2 番目の呼び出しを削除します。

于 2013-11-12T07:49:34.477 に答える
2

$this->model_users->add_user() は、if() 内で 1 回、if else の後で 2 回呼び出されます。

    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 に答える