база данных правильно регистрирует пользователя, но электронное письмо не отправляется - PullRequest
0 голосов
/ 21 апреля 2020

Я создаю приложение на android, база данных правильно регистрирует пользователя, но электронное письмо не отправляется, и приложение отображает мое сообщение об ошибке «Не могу зарегистрировать пользователя в данный момент», не знаю, что я делаю неправильно. Это часть php с функцией реестра

   //function to register and add user email and password to the database
   public function registerUser($name,$email,$password){
     if($this->verifyEmailExists($email,"email") == FALSE){
       //$data = [':name' => $name,':email' => $email,':password' => password_hash($password, PASSWORD_DEFAULT),':date' => date('Y-m-d H:i:s')];
       //$sql = "INSERT INTO tbl_android_users (name, email, password,date) VALUES (:name, :email, :password, :date)";
       //$stmt= $this->db->conn_id->prepare($sql);
       //$stmt->execute($data);
       //$insertid = $this->db->conn_id->lastInsertId();
       $data = array('name' => $name,'email' => $email,'password' => password_hash($password, PASSWORD_DEFAULT),'login_type'=>"email",'date' => date('Y-m-d H:i:s'));
       $this->db->trans_start();
       $this->db->insert('tbl_android_users', $data);
       $insertid = $this->db->insert_id();
       $this->db->trans_complete();
       //echo $insertid; die;
       if ($insertid){
         $this->status = "ok";
         $this->message = "User registered successfully, We sent a verification code to your email address, Click on the link to verify your email address.";
         $this->user = $this->getUpdatedUser($email);
       }else{
         $this->status = "error";
         $this->message = "Cant register user at the moment";
       }
     }else{
       $this->status = "error";
       $this->message = "Email or Phone already exists";
     }

   }

Большое спасибо заранее

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Вы должны закрыть транзакцию перед доступом к свойству InsertID. Сначала выполните $this->db->trans_complete();, прежде чем пытаться получить insertID с помощью $insertid = $this->db->insert_id();

0 голосов
/ 21 апреля 2020

Ваша проверка if block не пройдена, поскольку она будет работать, только если $insertid равно true. Это также означает, что $insertid dataType должен быть Boolean.

. Я бы предложил поставить точку останова в этой строке:

$insertid = $this->db->insert_id();

и попытаться зарегистрировать пользователя. Посмотрите, какое значение имеет #insertid. Он должен быть либо нулевым, либо false, поэтому код не выполняется.

РЕДАКТИРОВАТЬ

если ваш $ inserttid равен null, то проверьте в своем хранилище, возвращает ли что-нибудь следующую функцию или нет:

$this->db->insert_id()

По логике она должна возвращать либо Boolean или тип данных, который он пытается вставить в качестве своего возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...