Пишем систему пользователей сайта на PHP. Часть 1. Составляем проект

Система пользователей необходима на многих сайтах, поэтому я решил написать серию постов на эту тему. Процесс написания будет разбит на части, в каждой будет описываться процесс написания одного из компонентов системы. Эта часть — первая, здесь будет описана будущая пользовательская система.
И так, что моя система будеn иметь:

  1. Регистрирация пользователей
  2. Выполнение входа пользователей
  3. Выполние выхода пользователей
  4. Выполнение проверки, перед выводом содержимого для конкретного пользователя
  5. Личный кабинет
  6. Вывод профайла пользователя
  7. Система администрирования

Теперь разберём каждую часть в отдельности.

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

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

  1. Проверять входящие от пользователя данные на корректность, чтобы в скрипт не пропихнули чего-нибудь опасного
  2. Уметь выводить капчу при регистрации для защиты от ботов
  3. Проверять занятость логина и e-mail
  4. Отправлять письмо для подтверждения регистрации

Вход пользователя

По сути — два классических поля логин/пароль. Данный модуль должен уметь:

  1. Проверять входящие данные (безопасность, безопасность и ещё раз безопасность)
  2. Проверять наличие логина в базе данных и при его присутствии проверить пароль
  3. Если логин и пароль верны записывать данные в куки

Выход пользователя

Тут всё просто. Пользователь нажимает кнопку выход и скрипт удаляет пользовательские куки.

Выполнение проверки при выводе приватного содержимого

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

Личный кабинет

Тут пользователь может редактировать данные профайла. Ничего сложного тут нет.

Профайл

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

Система администрирования

Тут будет три инструмента:

  1. Вывод списка пользователей
  2. Возможность редактировать профайлы пользователей
  3. Возможность удалять пользователей

Вот и всё описание продукта. Теперь его осталось сделать :) .

Метки: , , ,
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

9 thoughts


  1. всё логично) напомнило мне мою работу проджект менеджером, когда нужно задокументировать каждый ньюанс проекта.

  2. А в течении какого времени это все будет написано? Просто очень срочно нужна как раз данная информация.

    PS. Добавьте подписку на комментарии.

  3. Такс, куки — зло, я вообще юзаю их только в очень крайнем случае ибо они могут отклоняться браузерами, могут быть использованы другими лицами и т.п

    Всё пишем в сессии, в куки пишем только если юзер поставил галку «запомнить меня».

    Проверяем корректность e-mail (по регулярному выражению), шифруем пароль в md5, пишем IP юзеров(мало ли, захочется забанить или ещё что-то).

    Остальная критика по мере выполнения.

    P.S. Ты хоть бы упомянул что всё пишется «для практики», а то народ начнёт юзать в своих проектах, а я сомневаюсь что с первого раза получится качественно.

    P.P.S. На будущее советую собрать класс из получившегося и использовать в дальнейшем.

  4. > Проверяем корректность e-mail (по регулярному выражению), шифруем пароль в md5, пишем IP юзеров(мало ли, захочется забанить или ещё что-то).

    Ну так я и так пароли в md5 шифрую, всё входящее через регулярки прогоняю :) . На счёт IP подумаю, но тут надо ставить последний для пользователя. Хотя есть прокси и прочее. Тут надо конкретно думать.

    > На будущее советую собрать класс из получившегося и использовать в дальнейшем.

    Ну тут у меня сборник функций получается, я пока в ООП не бе не ме :) . Но тут дело больше предпочтений.

    > Такс, куки — зло, я вообще юзаю их только в очень крайнем случае ибо они могут отклоняться браузерами

    Я их буду использовать в особо жёсткой форме с ограничением по доступу (только с данного урл). Пароль естественно записыватся будет хэшем md5.

    > Ты хоть бы упомянул что всё пишется “для практики”

    У меня половина написана уже, да и пишу всё это для конкретного сервиса, который подумываю сделать. В любом случае приятнее и полезнее писать что-то для людей, чем в стол, т.к. тут дельно покритиковать могут :) . Это всегда полезно.

  5. Это именно то что мне нужно! Как мне не хватает учителей))) Просто живу в таком месте что програмистов как кот наплакал)

  6. А есть уроки типа чтобы сделать добавление комментариев в документе html ?

    Как у вас.

    Если знаете напишите

    sasha_kul@list.ru

Напишите комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *