Переключать пункты меню

Подтверждение регистрации php

Для того, чтобы получить реальный действующий e-mail адрес пользователя сайта, нужно сделать небольшую проверку этого адреса. Для этого на указанный адрес, в автоматическом режиме высылается ссылка, которая содержит уникальный хэш код или другие данные для подтверждения существования адреса.

Алгоритм подтверждения регистрации следующий:
 

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

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

3. После получения письма пользователь открывает письмо и переходит по ссылке внутри письма. Кликнув по ссылке он, обычно, попадает обратно на сайт, где он регистрировался. И заметьте, очень важный момент(!), происходит моментальная авторизация пользователя на сайте. А не так, как делают не очень удачные сайты, в которых требуется опять вводить логин и пароль. Нужно учитывать, что большинство пользователей по своей природе ленивы, предпочитают комфортную работу с сайтом и не любят особо напрягаться.
 

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

1. У нас уже есть некая форма регистрации для ввода емейл и других данных, который отправляет все полученные данные на специальный скрипт обработчик.

2. Запускаем скрипт обработчик для проверки полученных от формы данных – емейл, логин, пароль, имя и по необходимости другие параметры.

3. Все параметры переменных заносим в базу данных в таблицу users.

4. Для подтверждения регистрации создаем определенную ячейку в таблице users и назовем для примера status. Ячейка будет иметь два параметра 0 и 1. Где 0 – пользователь зарегистрировался, но не активирован, а 1 –активация произведена успешно.

5. В том же скрипте регистрации пишем заранее автоматическое письмо, которое отправляется каждому зарегистрированному пользователю. Это будет первое письмо.

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

7. Все параметры передаем методом $_GET и все переменные заносим в одну строку, где вначале идет ссылка на сам сайт, страница где происходит подтверждение и авторизация пользователя, а дальше перечисляем все нужные нам параметры (имя=значения). Все пары соединяем между собой знаком & (амперсанд).

8. В конечном итоге ссылка примет такой вид: http://vashsayt.com/activation.php?from=user&email=”.$mail.”&pass=”.$pass.”&hash=”$userhash”;

9. Переменная $userhash, нам нужна, чтобы ссылка не была многоразовой, и ссылка была активна в течении определенного времени. В нашем случае ограничим время активации в течение двадцати четырех часов. После прохождения суток – ссылка становится не рабочей. То есть если пользователь после того как пройдут сутки после регистрации, перейдет по ссылке, которая будет в письме, то ничего уже не будет. Просто покажем ему сообщение, что ссылка недействительна и прошло больше двадцати четырех часов после регистрации. Пройдите регистрацию повторно. Переменная $userhash будет содержать текущее время в секундах в формате функции time(); Для надежности проверки ссылки вы можете вшить в хеш любые уникальные параметры. Это уже придумайте сами.

10. После перехода по ссылке клиент попадает на страницу activation.php, где значение переменной $userhash сравнивается с текущей датой. Если сутки еще не прошли, продолжаем работу скрипта.

11. Получаем имя глобальной переменной $_GET[‘from’] и сравниваем со значением user. Если все верно, продолжаем работу скрипта.

12. Затем получаем имена глобальных переменных $_GET[‘login’] и $_GET[‘pass’] и сравниваем их со значением в базе данных. Если все верно, тут же пишем все значения в cookie и производим авторизацию пользователя.

Важное замечание! В базе данных пароли никогда не хранятся. Хранятся лишь хеши паролей. Хеш пароля создается необратимой функцией md5(). Когда пользователь вводит пароль, сравниваются только хеши пароля. В нашем случае полученный от пользователя пароль шифруется функцией md5($pass); Полученный хеш сравнивается с хешем в базе данных.

13. По логину и паролю получаем id пользователя и переводим значение поля status в положение 1 –активировано.

14. Отправляем, полученные, логин и пароль на почтовый ящик пользователя. И напишите свое приветственное сообщение. Это будет уже второе письмо.
 

Добавить комментарий

Вадим    2017.08.08 09:34:24

Здравствуйте!

Не могу подключиться к базе данных.
ПхпАдмин запущен, а сайт не работатет.
Не подскажите что делать? Свернуть обратно
Здравствуйте!

Не могу подключиться к базе данных.
ПхпАдмин запущен, а сайт не работатет.
Не подскажите что делать?



Коллекция скриптов и модулей   © 2017