0

使用 CodeIgniter,我正在使用表单来创建用户。用户确实在数据库中创建。在我的用户模型中,我在将 verify_hash 的值插入数据库之前对其进行操作:

public function set_user(){

    $data = array(
        'temporary_email'   => $this->input->post('email'),
        'password'          => $this->input->post('password'),
        'verification_hash' => sha1(mt_rand(1000, 9999999))
    );

    $this->db->set('created', 'NOW()', FALSE);

    return $this->db->insert('users', $data);
}

然后,我希望能够使用 Email 类发送电子邮件。我需要能够在我的电子邮件中使用“verification_hash”的新值。

如果有更好的方法来做到这一点,我全神贯注,我仍在学习 CI。谢谢,杰森

4

1 回答 1

1

您可以只返回$data数组,然后您的控制器代码将类似于

public function foo()
{
 if($this->input->post('user'))
 {
    //Validation rules

    if($this->form_validation->run())
    {
        $user = $this->user_model->set_user();
        $this->load->library('email');

        $this->email->from('email@email.com', 'Name');
        $this->email->to($user['temporary_email']);

        $this->email->subject('Welcome');
        $this->email->message($user['verification_hash']);

        $this->email->send();

    } else {
        //Reloads Same form with errors
    }
 }
}

但是我不知道为什么要为这样的临时数据创建unique_hash/url | user_id | status 用户网站上更重要的东西必须将hash_status设置为 used

于 2013-04-03T07:01:07.143 回答