Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сгенерировать ссылку регистрации

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Регистрация через мыло
taxi008
Отправлено: 19 Декабря, 2011 - 13:46:01
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




Подскажите! Есть скрипт авторизации, смены пароля, личный кабинет и.т.д. Хотелось бы сделать регистрацию: Например отправляется на мыло ссылка (приглашение), которая действительна например сутки. Перейдя по ссылке пользователь попадает на страницу регистрации. Ну, а дальше все как обычно. Где бы посмотреть материал на эту тему?
 
 Top
EuGen Администратор
Отправлено: 19 Декабря, 2011 - 13:53:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Создаете в таблице пользователей два поля: код активации и флаг подтвержденности. Алгоритм прост:

0. Пользователь регистрируется, указывая e-mail
1. Создается запись в таблице пользователей. При этом флаг подтвержденности = 0. Также при этом генерируется код активации, он должен быть универсальным и по возможности случайным. Например, подойдет md5(rand())
2. Пользователю на указанный e-mail высылается ссылка вида http://domain[dot]com/activate.php?u[dot][dot][dot]d&code=$code где $user_id - идентификатор для вновь созданной записи в БД, $code - только что сгенерированный код
3. В скрипте activate.php есть код вроде:
PHP:
скопировать код в буфер обмена
  1. $iUserId=$_GET['user_id'];
  2. $sCode=$_GET['code'];
  3. if(isset($iUserId) && isset($sCode))
  4. {
  5.    //первое - проверка, существует ли в БД пользователь с указанным $iUserId и кодом активации.
  6.    //логика запроса:
  7.    //SELECT COUNT(1) FROM `users_table` WHERE `id`=$iUserId AND `code`=$sCode
  8.    //второе - если нашлось - значит, все верно, обновляется флаг подтвержденности в 1
  9. }

4. На странице входа помимо логина и пароля проверяется, стоит ли флаг подтвержденности. Если да - пользователь подтвердил регистрацию, можно разрешать вход.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB