Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Стандартные решения типовых задач //

    Регистрация на сайте и личный кабинет


    Задача: мы хотим организовать на сайте регистрацию пользователей, которые бы видели что-то такое, чего не видят на сайте другие, незарегистрированные пользователи, могли бы писать комментарии к постам в блоге, или видеть статус своих заказов в интернет-магазине, имели бы историю покупок и свои специальные скидки и так далее. Кроме того, пользователь, естественно, должен иметь возможность корректировать информацию в своей учетной записи (профайле), например, менять фамилию, добавлять номера своих служебных удостоверений, менять пароль. Еще обычно нужна функция напоминания забытого пароля.

    Общая логика реализации:

    1. Пользователь регистрируется на сайте с помощью формы. Обычно, во избежание захламления базы данных лишними регистрациями, а также, чтобы с пользователем всегда можно было связаться хотя бы по email, пользователь должен получить на email письмо со ссылкой для активации аккаунта и подтвердить тем самым свой email. Для этого, мы все заявки на регистрацию, которые пользователи отправляют через страницу с макросом Form, выводящим форму регистрации, складываем в отдельную таблицу, например, preregisters. Макрос Form помимо записи в эту таблицу данных о пользователе отправляет ему на указанный email письмо со ссылкой для активации. Переходя по этой ссылке на специальную страницу, пользователь передает свой идентификатор. На этой странице находится макрос RegistrationConfirm, который ищет такого пользователя в таблице preregisters и перемещает его в таблицу registers, одновременно выставляя признак "активен" (например, поле state). Таким образом, если email был указан корректно и пользователь активировал свой аккаунт по ссылке, после этого он сможет логиниться на сайт через форму с логином и паролем (форму авторизации).

    2. Разработчик рисует форму авторизации в нужном ему дизайне. Данная форма может быть размещена через макрос Form в любом месте сайта, а также может использоваться как один из ключей макроса AuthBlock, который проверяет авторизован ли пользователь, и если да - рисует какой-то контент, а если нет - рисует эту форму для ввода логина и пароля.

    Принципиальный момент. Все макросы, которые так или иначе используются в схеме с авторизацией имеют должны иметь поля login и password, называть их иначе нельзя. В форме авторизации никаких других полей кроме этих двух, в том числе и скрытых (hidden) быть не должно. Система автоматически детектирует такие формы и дописывает к ним свои системные поля. Если в форме сделать какие-то другие поля помимо login и password, авторизоваться на сайте пользователь не сможет.

    3. Личный кабинет устроен как форма, в которой определенные поля уже заполнены информацией из профайла пользователя, и которая позволяет изменить эту информацию и сохранить её в базу. Разработчику нужно учесть тут несколько моментов, связанных с особенностями обработки информации сервером и внимательно прочитать описание ключей макроса Form (таких как updatemode, savetodbcondition, shadowfields и ignorefields). На странице http://www.twl.ru/tsdn/macroses/form можно найти описание всех ключей и пример для макроса обновления профайла.

    4. Отправка забытого пользователем пароля выполняется с помощью формы ввода email, которая может отправлять данные методом GET или POST на страницу, с макросом News. Который выбирает из базы запись с таким email (ключ filter) и отправляет на этот email письмо с текущим паролем. Также, для этого можно использовать макрос RegistrationConfirm, который плюс ко всему может перед отправкой поменять пароль на какое-то другое значение, если нужно.

    5. Регистрация и авторизация готовы, остается только закрыть часть информации, которую смогут видеть только зарегистрированные пользователи. Как это сделать описано здесь: http://www.twl.ru/tsdn/typical_tasks/authorization_areas. В дальнейшем, с помощью макроса UserProfile можно заполнять формы для заказа именем, фамилией и другими данными из профайла, а заказы помечать в базе идентификатором пользователя, чтобы позже их можно было отфильтровать и вывести через любой макрос типа News в разделах "личного кабинета".

    6. Логаут (выход из личного кабинета) делается простой ссылкой на /cgi-bin/CMS/logout.cgi, которая удалит куки с логином и паролем пользователя и вернет его обратно на ту же страницу.

    Чтобы разработчик не придумывал все это на каждом проекте с нуля, в закрытой зоне доступен пакет для быстрого развертывания авторизации на сайте, где перечисленные функции уже реализованы. Разработчику остается только разбросать файлы по системе, и, если нужно, понимая логику работы, модифицировать макрокод под свою задачу.

    « к списку

    версия для печати

     
    © 2003-19 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: