/** * Регистрация пользователей * */ 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__); }