MV framework logo
  • Архитектура
    • Философия
    • Технологии
    • CMF
    • История версий
  • Админ панель
  • Поддержка
  • Обратная связь
  • Примеры кода
    • Новостная лента
    • Слайдер с баннерами
    • Список с фильтрацией
    • Форма с загрузкой файла
    • AJAX форма на jQuery
    • Вопросы и ответы
    • Каталог с товарами
    • Авторизация пользователя
    • Регистрация пользователя
    • Личный кабинет пользователя
Скачать Версия 2.6 от 07.10.2022
Документация
  • Архитектура
    • Философия
    • Технологии
    • CMF
    • История версий
  • Админ панель
  • Поддержка
  • Обратная связь
  • Примеры кода
    • Новостная лента
    • Слайдер с баннерами
    • Список с фильтрацией
    • Форма с загрузкой файла
    • AJAX форма на jQuery
    • Вопросы и ответы
    • Каталог с товарами
    • Авторизация пользователя
    • Регистрация пользователя
    • Личный кабинет пользователя
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
Модели (models)
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны (views) и маршрутизация (routes)
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Index, default и 404 шаблоны
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Правила проверки полей формы
  • Проверка полей формы
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
  • Загрузка из csv файлов
Сессии и безопасность
  • Работа с сессиями
  • AJAX
  • Кэширование
  • Безопасность
  • Отладка
Плагины
  • Общие принципы плагинов
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
Модели (models)
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны (views) и маршрутизация (routes)
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Index, default и 404 шаблоны
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Правила проверки полей формы
  • Проверка полей формы
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
  • Загрузка из csv файлов
Сессии и безопасность
  • Работа с сессиями
  • AJAX
  • Кэширование
  • Безопасность
  • Отладка
Плагины
  • Общие принципы плагинов
  • Дополнения к административной панели

Личный кабинет пользователя

Это также продолжение раздела Авторизация пользователя. Создаем домашнюю страницу пользователя с возможностью редактирования личных данных и выхода из авторизации (разлогинивания). Добавляем методы в файл модели 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 = array( ... ,

"home/" => "view-user-home.php"
);

Ссылку на разлогинивание можно ставить в любом месте сайта

<? $logout_url = $mv -> root_path."login/?logout=".$mv -> accounts -> generateLogoutToken($account); ?>

<a href="<? echo $logout_url; ?>">Выйти из аккаунта</a>

Содержимое файла шаблона 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(array("name", "email", "phone"));

    if($form -> isValid())
    {
        $account -> setValues($form -> getAllValues(array("name", "email", "phone")));
        $account -> update();

        $mv -> reload("?done");
    }
}

include $mv -> views_path."main-header.php";
?>

<?
    echo $form -> displayErrors();

    if(isset($_GET['done']))
        echo "<div class=\"success\"><p>Данные были успешно обновлены.</p></div>\n";
?>
<form method="post" action="<? echo $mv -> root_path; ?>home/">
    <table>
        <? echo $form -> display(array("name", "email", "phone")); ?>
    </table>
    <div class="form-buttons">
        <? echo $form -> displayTokenCSFR(); ?>
        <input type="submit" value="Обновить" />
    </div>
</form>

<?
include $mv -> views_path."main-footer.php";
?>

Предыдущий раздел

Регистрация пользователя

© 2012-2023, MV framework team

English MV task tracker system Лицензия

Поделиться