public function login($data) { if (empty($data['email'])) { throw new Exception('E-mail не может быть пустым'); } if (strlen($data['password']) < 5) { throw new Exception('Длина пароля должна быть не менее 6 символов'); } $email = validate::clear($data['email']); $password = validate::hashInit($data['password']); $query = $this->db->prepare("SELECT `id`,`email`, `password`,`activate` FROM `users` WHERE `email` = :email"); $query->bindParam(":email", $email, PDO::PARAM_STR); $query->execute(); $result = $query->fetch(); //Проверяем активирован ли аккаунт пользователя if ($result->activate == 0) { throw new Exception("Ваш аккаунт не активирован!"); } if ($result->email === $email && $password === $result->password) { //успех if ($remember == 1) { setCookie("user_id", $result->id, time() + 3600 * 24 * 30); } $_SESSION['user']['id'] = $result->id; return true; } return false; }
/** * Работа с данными POST / COOKIE / SESSION * */ public static function data() { try { if (isset($_POST) && !empty($_POST)) { $data = new Data(); if (isset($_POST['signup'])) { if ($data->signup($_POST)) { die("Успешная регистрация! На ваш E-mail отправлено письмо с инструкцией по активации аккаунта"); } else { echo "<div class='error'>Произоша ошибка в момент регистрации!</div>"; } } if (isset($_POST['login'])) { if ($data->login($_POST)) { self::location(HTTP_PATH); } else { echo "<div class='error'>Ошибка при входе</div>"; } } if (isset($_POST['recover'])) { $email = validate::clear($_POST['email']); if ($data->recover($email)) { die("На ваш e-mail отправлен новый пароль!"); } } if (isset($_POST['profile'])) { if ($data->editProfile($_POST)) { echo "<center><strong>Профиль успешно изменен!</strong></center>"; } else { echo "<div class='error'>Профиль успешно изменен!</div>"; } } } } catch (Exception $e) { echo "<div class='error'>" . $e->getMessage() . "</div>"; } }