Example #1
0
 /**
  * Регистрация пользователей
  * */
 public function signup($data)
 {
     if (strlen($data['password']) < 6) {
         throw new Exception('Длина пароля должна быть не менее 6 символов');
     }
     if (empty($data['email'])) {
         throw new Exception('E-mail не может быть пустым');
     }
     if ($data['captcha'] != $_SESSION['captcha']) {
         throw new Exception("Капча введена не верно");
     }
     $email = validate::clear($data['email']);
     if (!$this->UniqEmail($email)) {
         throw new Exception('Такой email уже зарегистрирован!');
     }
     $password = validate::hashInit($data['password']);
     $name = validate::clear($data['name']);
     if (validate::EmailValidate($email) === false) {
         throw new Exception('Введите корректный email');
     }
     $time = time();
     //Регистрируем пользователя
     $query = $this->db->prepare("INSERT INTO `users` (`email`,`password`,`name`,`date_register`, `activate`) \r\n\t                                 VALUES(:email, :password, :name, {$time}, 0)");
     $query->bindParam(':email', $email, PDO::PARAM_STR, 155);
     $query->bindParam(':password', $password, PDO::PARAM_STR, 155);
     $query->bindParam(':name', $name, PDO::PARAM_STR, 100);
     if ($query->execute()) {
         //отправляем письмо активации
         $id = $this->db->lastInsertId();
         $key_hash = validate::hashInit($email . "::" . $password);
         $link_activate = HTTP_PATH . "activate/" . $id . "/" . $key_hash;
         mail::new_mail($email, "Активация аккаунта!", "Здравствуйте, вы зарегистрировались в скрипте ЛК, одного из примеров, на сайте\r\n\t     mzcoding.com. \n\r \r\n\t     Для подтверждения аккаунта, кликните по ссылке активации:" . $link_activate . "\n\r");
         return true;
     }
     //Записываем в лог ошибку
     $info = $this->db->errorInfo();
     error::ErrLog("- Ошибка PDO: " . $info[2] . "\n" . __FILE__ . "\n" . __LINE__);
 }