Личный кабинет пользователя
Это также продолжение раздела Авторизация пользователя. Создаем домашнюю страницу пользователя с возможностью редактирования личных данных и выхода из авторизации (разлогинивания). Добавляем методы в файл модели 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 "Данные были успешно обновлены.
\n";
include $mv -> views_path."main-footer.php";
Предыдущий раздел
Регистрация пользователя