Личный кабинет пользователя
Это также продолжение раздела Авторизация пользователя. Создаем домашнюю страницу пользователя с возможностью редактирования личных данных и выхода из авторизации (разлогинивания). Добавляем методы в файл модели models/accounts.model.php
public function generateLogoutToken($account) { return md5($account -> id.$_SESSION["account"]["token"].$_SERVER["HTTP_USER_AGENT"]); } public function logout() { unset($_SESSION["account"]); }
Добавляем в самое начало шаблона view-login.php код для разлогинивания
if($account && isset($_GET['logout'])) if($_GET['logout'] == $mv -> accounts -> generateLogoutToken($account)) { $mv -> accounts -> logout(); $mv -> reload(); }
Создаем файл шаблона views/view-user-home.php и вносим маршрут к шаблону в файл config/routes.php
$mvFrontendRoutes = [ ... , "home/" => "view-user-home.php" ];
Ссылку на разлогинивание можно ставить в любом месте сайта
$logout_url = $mv -> root_path."login/?logout=".$mv -> accounts -> generateLogoutToken($account); Выйти из аккаунта
Содержимое файла шаблона views/view-user-home.php
if(!$account) $mv -> redirect("login/"); $form = new Form("Accounts", $account -> id); $form -> loadRecord(); $form -> addRule("email", "unique", true, "Данный email уже зарегистрирован."); $form -> useTokenCSRF(); if(!empty($_POST)) { $form -> getDataFromPost() -> validate(["name", "email", "phone"]); if($form -> isValid()) { $account -> setValues($form -> getAllValues(["name", "email", "phone"])); $account -> update(); $mv -> reload("?done"); } } include $mv -> views_path."main-header.php"; echo $form -> displayErrors(); if(isset($_GET['done'])) echo "include $mv -> views_path."main-footer.php";\n";Данные были успешно обновлены.
Предыдущий раздел
Регистрация пользователя