如何使用codeigniter修复电子邮件确认中的错误

时间:2019-07-07 22:54:05

标签: php codeigniter

我正在尝试在创建新帐户时验证电子邮件时激活新用户。

这是一个代码点火器问题,我对这个框架还很陌生。我能够将带有生成的链接+哈希码的确认电子邮件发送给用户。当用户单击确认链接时,它将返回一条成功消息,但不会从0 => 1更新数据库值,并且在用户尝试登录时触发错误。我使用了不同的方法,但似乎没有一个起作用,我想知道我错过了什么,或者为什么它没有更新数据库的价值。

这是我的控制器代码:

 function verify() {

    $cid = $this->db->get_where('client' , array('client_id' => 
    $client_id))->row()->client_id; 
    $email = $this->db->get_where('client' , array('client_id' => 
    $client_id))->row()->email;
    $rhash = $this->db->get_where('client' , array('client_id' => 
    $client_id))->row()->hash;
    $result = array_merge($email,$rhash,$cid);

       if($email['hash'] == $rhash){  
           $this->crud_model->verify_user($email); 
           $this->session->set_flashdata('create_success', "Email 
      Verification Success. <br> Login to your account now and 
      complete your profile.");
           redirect(site_url('login'), 'refresh');
       }
       else{
          $this->session->set_flashdata('create_error', 'Email 
    Verification Failed. <br> Please retry, or confirm your 
    confirmation link.');
          redirect(site_url('login'), 'refresh');
       }       
    }

我的模特:

 function verify_user($email) {
    $data = array('is_verified' => 1);
    $this->db->where('email', $email);
    $this->db->update('client', $data);
  }

我已经使用了所有声明的变量,以防万一,但是我仍然无法将“ is_verified”更改为1。

1 个答案:

答案 0 :(得分:0)

仅通过将模型修改为以下内容即可解决问题:

reduce()