
Не так давно один из моих посетителей попросил меня написать статью о том, как сделать регистрацию и авторизацию пользователей на сайте. Собственно, выполняю его просьбу, и в этой статье я расскажу о том, как это делается.
Существует несколько способов создания регистрации и авторизации пользователей, но в этой статье я разберу свой любимый — через механизм сессий или cookie.
Первым делом, если Вы хотите сделать регистрацию у себя на сайте, то необходимо понимать, где будут храниться данные о пользователях. Можно хранить в обычном текстовом файле, в XML-файле, либо в базе данных. Первые два варианта — очень опасные, поэтому не рекомендую Вам ими пользоваться. А вот третий вариант — хранение информации о пользователях в базе данных — самый популярный, и именно этим способом хранения информации я советую Вам пользоваться.
С местом хранения определились. Теперь перейдём непосредственно к алгоритму авторизации:
ЛЕГКИЙ ЗАРАБОТОК НА АВТОРЕГАХ
- Создать форму регистрации на HTML.
- Получить данные из формы в скрипте-обработчике.
- Проверить полученные данные, и если они некорректны, то сделать редирект обратно на форму регистрации.
- Если данные корректны, то записать их в базу данных.
Вот и весь процесс регистрации пользователя на сайте. То есть регистрация — это сохранение информации о пользователе на сайте.
Дальнейшим пунктом является авторизация пользователя на сайте, однако, прежде чем к нему переходить, расскажу об одном важном моменте в форме регистрации — пароле. Я Вам настоятельно рекомендую не хранить пароли в открытом виде (например так, «123456»). Обязательно их шифруйте, хотя бы с помощью функции md5(). И в базе данных храните именно зашифрованный пароль.
Теперь авторизация. Первое, что Вы должны понять — это то, что информация об авторизации должна где-то храниться. Самый простой вариант — это хранение информации в сессии (или в cookie). А теперь алгоритм:
- Создать форму авторизации пользователя на HTML, куда пользователь должен будет ввести свой логин и пароль.
- В скрипте-обработчике принять данные от пользователя. Если Вы меня послушались, и храните шифрованные пароли в базе данных, то сначала шифруйте полученный пароль. Если же в базе данных лежат открытые пароли, то шифровать не надо.
- Проверить правильность введённых данных, и если логин и пароль совпадают с существующим пользователем в базе данных, то записываете в cookie или сессию информацию с логином и шифрованным паролем (либо открытым паролем, если Вы его не шифровали).
- Если логин и/или пароль введены неверно, то делать редирект обратно на форму авторизации.
Теперь у Вас есть необходимая информация об авторизации пользователя, которая хранится в его cookie или на сервере (если сессия). Фактически, теперь Вам нужно эту информацию проверять на каждой странице сайта и сверять её аналогично проверке формы авторизации. То есть считываете из cookie (сессии) логин и пароль, и проверяете его. Если они верные, то показываете одну страницу (для зарегистрированных пользователей), а если неверные, то показываете другую страницу (для гостей).
ПРОГРАММА ДЛЯ АВТОМАТИЧЕСКОЙ РЕГИСТРАЦИИ АККАУНТОВ НА ПОЧТОВЫХ СЕРВИСАХ
И последнее. Как делается кнопка «Выход»? Очень просто. При нажатии на эту кнопку, стираются cookie, либо сессия. Таким образом, пользователь автоматически вылетает с сайта.
Как видите, всё элементарно, но при реализации этого алгоритма у Вас обязательно возникнет множество вопросов. Например, что делать при регистрации пользователя, логин которого уже имеется в базе данных. Реализация различных проверок входных данных, реализация проверки существования e-mail и прочее — всё это является достаточно сложным, если Вы делаете это в первый раз. Однако, самый сок я выдал. Если будут вопросы при реализации, то спрашивайте либо на форуме, либо в комментариях.
В данной статье я привёл лишь алгоритм, а чтобы научиться его реализовывать нужно знать PHP и MySQL, которые максимально подробно разобраны в этом обучающем курсе: http://srs.myrusakov.ru/php

![]()
Создано 05.05.2011 13:05:46
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 114 ):
Adrenalin 15.10.2011 02:21:09
Респект и Уважуха тебе Михаил! Хочу задать два вопроса: — долго ли Ты обучался всему этому; — как сделать авторизацию пользователей как В Контакте (всмысле каждому пользователю разные страницы)? Твой постоянный читатель с Украины!
Admin 15.10.2011 13:10:06
Обучаться созданию авторизации не нужно. Нужно обучаться PHP и MySQL. Для этого мне потребовалось 2-3 месяца, а после пошло уже совершенствование, которое происходит и сейчас.
Adrenalin 07.11.2011 21:37:30
А в денвере (Denwer) нельзя создавать скрипты или страницы так, чтобы в одном окне код, а в другом результат? Общем как в html-редакторе.
Admin 07.11.2011 21:39:55
Нет, поскольку Denwer — это не редактор, а пакет сервера apache, интерпретатора php, mysql, phpmyadmin и так далее, но никак не html-редактор.
Adrenalin 07.11.2011 21:54:40
Видел в нете редакторы php. Это то же самое что и html-редактор? Или они не будут показывать виполнение скриптов?
Admin 07.11.2011 22:02:04
Это примерно то же самое, что и HTML-редакторы, только для PHP. Результата выполнения они показывать не будут.
Серый 21.10.2013 20:53:06
Здравствуйте, Михаил! А возможно ли сделать регистрацию на сайте без PHP, то есть просто ссылка на какой нибудь сторонний ресурс, где можно хранить базу подписчиков??)
Admin 21.10.2013 22:20:45
Да, можно. Только тогда будет не регистрация, а просто авторизация через сторонний сервис. Например, такое позволяют Яндекс, Контакт и многие другие популярные сервисы.
Серый 22.10.2013 07:23:05
А, например, смартреспондер, джастклик, или это все не то?
Admin 22.10.2013 11:53:34
Это не для регистрации пользователей.
Источник: myrusakov.ru
Как сделать авторизацию на PHP? Пишем авторизацию пользователя
