Как исправить ошибку в подтверждении по электронной почте с помощью codeigniter - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь активировать нового пользователя при проверке электронной почты при создании новой учетной записи.

Это проблема воспламенителя кода, и я довольно новичок в этой среде.Я могу отправить подтверждение по электронной почте с созданной ссылкой + хэш-код пользователю.Когда пользователь щелкает ссылку подтверждения, он возвращает сообщение об успехе, но не обновляет значение базы данных с 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 голосов
/ 08 июля 2019

Я смог решить проблему, просто изменив модель на эти:

 function verify_user($email) {
    $data = $this->db->update('client', array(
        'is_verified' => 1
    ));
    $this->db->where('email', $email);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...