public static function checkUser() { // Предотвращение перехвата сеанса $sessUserId = Session::get('user_id'); if (!isset($sessUserId)) { Session::destroy(); // unset($this->user); Session::setMsg('Произошла ошибка. Пожалуйста авторизуйтесь заново', 'warning'); return FALSE; } // Предотвращение фиксации сеанса (включая ini_set('session.use_only_cookies', true);) $sessGenerated = Session::get('generated'); if (!isset($sessGenerated) || $sessGenerated < time() - 30) { session_regenerate_id(); $_SESSION['generated'] = time(); } if ($sessUserId) { $userModel = new UserTableModel(); $userModel->setId($sessUserId); $userModel->setTable('user'); $username = $userModel->readRecordsById('id', 'username')[0]['username']; Session::set('username', $username); return TRUE; } return FALSE; }
public function updateRecord() { if (!$this->id) { throw new Exception('Не задан id пользователя для обновления'); } try { $this->setUserIdForDB(); $st = $this->db->prepare("UPDATE user SET full_name = ? WHERE id = ?"); $st->execute([$this->fullName, $this->id]); $this->addresses->updateRecord(); $this->phones->updateRecord(); Role::updateRoleByUserId($this->db, $this->roleId, $this->id); Session::setMsg('Пользователь успешно обновлен', 'success'); } catch (Exception $ex) { $ex->getMessage(); } }
public function checkoutAction() { $fc = FrontController::getInstance(); $model = new FrontModel(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $orderModel = new OrderTableModel(); $orderModel->setData(); $orderModel->addRecord(); Basket::deleteBasket(); \app\services\Session::setMsg('Ваш заказ принят. Наш менеджер свяжется с вами в ближайшее время', 'success'); header('Location: /'); exit; } else { $output = $model->render('../views/order/order.php', 'withoutSliderAndSidebar'); $fc->setPage($output); } }
public function validateAction() { $fc = FrontController::getInstance(); $model = new UserTableModel(); $model->setTable('user'); if (empty($fc->getParams()['email']) && empty($fc->getParams()['key'])) { header('Location: /'); exit; } $model->setValidateUserData($fc->getParams()); if ($model->checkValidKey()) { $output = $model->render('../views/user/validate.php', 'withoutSliderAndSidebarAndFooter'); $fc->setPage($output); } else { Session::setMsg('Невозможно активировать данный аккаунт. Пожалуйста зарегистрируйтесь заново', 'warning'); header('Location: /user/login'); exit; } }
private function checkCreds() { try { $st = $this->db->prepare("SELECT `id`, `username`, `email`, `password_hash`, `validated` FROM {$this->table} WHERE `username` = :username"); $st->execute([':username' => $this->login]); if ($st->rowCount() === 1) { $user = $st->fetch(PDO::FETCH_ASSOC); if (!$user['validated']) { Session::setMsg('Для входа необходимо активировать ваш аккаунт при помощи письма, отправленного на ваш электронный ящик ранее', 'warning'); return FALSE; } if (User::confirmPassword($user['password_hash'], $this->password)) { return $user; } } Session::setMsg('Неверный логин или пароль', 'danger'); return FALSE; } catch (Exception $ex) { $ex->getMessage(); } }
public function setUserMsgAction() { header('Content-type: text/plain; charset=utf-8'); header('Cache-Control: no-store, no-cache'); header('Expires: ' . date('r')); $msg = Validate::validateInputVar('msg', 'INPUT_GET', 'str'); if ($msg) { Session::setMsg($msg); } else { echo FALSE; } }
public function addArticleAction() { $fc = FrontController::getInstance(); $model = new AdminModel('Блог', 'Новая статья'); $articleModel = new ArticleTableModel(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $articleModel->setData(); $articleModel->addRecord(); Session::setMsg('Статья успешно добавлена', 'success'); header('Location: /admin/blog'); exit; } else { $output = $model->render('../views/admin/blog/addarticle.php', 'admin'); $fc->setPage($output); } }