0

コードイグナイターを介してソーシャルネットワークを構築しています。登録時に、潜在的なメンバーが db に保存され、ステータス get が保留中とマークされます。次に、ハッシュ化されたトークン リンクを含む確認メールを送信します。リンクをクリックすると、アカウントがアクティブであるとマークされ、サインインのあるウェルカム ページが表示されます。

リンクに移動すると、無限ループが設定され、MAMP で作業しているときにコンピューターがフリーズします。(または、無限ループではないかと疑っています)

これが私の関連するコードです:

電子メールを送信する auth CONTROLLER:

function varification_email()
{
    $query = $this->db->query('SELECT * FROM users order by id desc LIMIT 1');
    $token = sha1($user->email.$user->salt).dechex($user->id);
    $domain = "clci.dev/index.php";
    $link = "http://www.".$domain."/account/confirmation/?token=$token";
    foreach ($query->result() as $user)
    {
        $this->load->library('email');

        $this->email->from('noreply@cysticlife.org', 'CysticLife');
        $this->email->to($user->email); 

        $this->email->subject('Welcome to CysticLife!');
        $this->email->message("Thanks for signing up for CysticLife! To complete the registration process please go to the following web address:\n\n$link\n\n-Your friends at CysticLife\n\nPlease remember to add the cysticlife.org domain to your address book to ensure that you receive your CysticLife e-Notifications as requested.eh");    

        $this->email->send();
}

ユーザーがメールからリンクされているアカウント CONTROLLER:

public function confirmation() {
    $data['main_content'] = 'account/confirmation';
    $this->load->view('includes/templates/main_page_template', $data);
    $this->load->library('encrypt');
    $this->load->helper('url');
    $this->load->library('session');
    $this->load->model('user_model', 'um');
    $login = $this->input->post('submit');


    //IF THE SUBMIT BUTTON IS TRIGGERED THE POST DATA IS SENT TO THE VALIDATE FUNCTION IN THE MODEL VIA VARIABLES CREATED 
    if($login) {
        $user = $this->um->validate(array('email' => $this->input->post('email')));
        if( $user ) {
            // CHECK THE USER'S PASSWORD AGAINST THE ONE FROM THE LOGIN FORM
            if($user->password == $this->encrypt->sha1( $user->salt . $this->encrypt->sha1($this->input->post('password')))) {
                $this->session->set_userdata('logged_in', TRUE);
                $this->session->set_userdata(array(
                    'email' => $this->input->post('email')
                ));
                $this->session->userdata('logged_in');
                redirect('account/dashboard');
                exit;
            }
        }
    }

    $this->index();
}

前もって感謝します

4

1 に答える 1