Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Случайный код для восстановления пароля 
:(
    Опции темы
zone51
Дата 1.5.2009, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 17.2.2006

Репутация: нет
Всего: 1



Привет всем. Народ помогите решить проблему. Пользователю приходит ссылка и в ссылке должен быть зашит случайный код  а также емэйл адрес куда слать подтверждение пароля. Как это сделать? Спасибо smile  smile  smile 


--------------------
The truth is out there
PM MAIL   Вверх
ksnk
Дата 1.5.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата

Пользователю приходит ссылка

Куда приходит? по e-mail адресу?

Как выглядит ритуал "я забыл пароль - дай еще!" ?

Обычно, при регистрации юзер указывает свой адрес. Собственно регистрация заключается в том, что юзер переходит по секретной ссылке из письма, пришедшего по адресу регистрации. Так что "забыл пароль" - просто переслать пару логин-пароль по адресу и все. Можно предварительно помурыжить юзера, заставляя вспоминать имена президентов или клички собственных кошек, но эти навороты уже по обстоятельствам ...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
SneG0K
Дата 1.5.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



ksnk, я предпочитаю шифровать пароли, поэтому обычно я создаю новую таблицу с id юзера и кодом подтверждения, код уникальный...
Этот код высылаю юзеру, он переходит, я из таблицы удаляю этот код и ставлю ему новый пароль.
PM WWW Skype   Вверх
SoWa
Дата 1.5.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Вопрос не совсем корректен.
У тебя в чем проблема: в реализации генерации случайного кода? В отсылке письма? Или ваще тебе целый кусок кода надо?

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


Цитата(zone51 @  1.5.2009,  01:56 Найти цитируемый пост)
Пользователю приходит ссылка и в ссылке должен быть зашит случайный код  а также емэйл адрес куда слать подтверждение пароля

Это вообще как? 
Ссылка вида: "http://servername/reqpass.php?kod=XXX&mail=XXX"
Не понятно. Либо ты как-то не по человечески реализуешь систему восстановления пароля(не изобретай велосипед), либо мне не понятно, что ты хочешь.

Можно пример, как это должно работать?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
zone51
Дата 3.5.2009, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 17.2.2006

Репутация: нет
Всего: 1



SoWa, 
2 All, 
Спасибо что откликнулись. Работать должно так. Пользователь на форме регистрации вводит свои данные и если в базе такое мыло уже есть то выскакивает ссылка типа восстановите пароль. Он щелкает и в этот момент срабатывает ажах функция которая шлет на мыло этому клиенту письмо типа пройдите по этой ссылке для смены пароля. Так вот в этой ссылке должен в зашифрованном виде быть емэфл человека, при переходе по этой ссыке человек попадает на форму где может ввести свой новый пароль он его вводит жмет ок и новый пароль высылается намыло. Весь вопрос в том как секурно зашить эмэйл ( а нужно на самом деле код клиента в базе) в эту ссылку чтобы потом скрипт ее обработал нормально и поменял пароль.Спасибо

 smile  smile 


--------------------
The truth is out there
PM MAIL   Вверх
Shark
Дата 3.5.2009, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



zone51, можешь в таблице сделать столбец где будешь хранить хеш-мыла... и его в ссылку и добавлять... 
можешь воспользоваться mcrypt_encrypt и mcrypt_decrypt


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
ksnk
Дата 3.5.2009, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



zone51, А вот не надо никак шифровать адрес в ссылке. Ежели юзер пожелал восстановить пароль, нужно это его желание отобразить в таблице {user, код, дата запроса}. Код генерировать случайно,  длинным. В базе поле `код` должно быть уникальным.
Ссылка, предаваемая в письме должна иметь вид  site/lostpassword.php?code=код. Ну или примерно так, с 1-м параметром. По этому параметру выбираем запись не старее 1 дня и пересылаем пароль по зарегистрированному у юзера адресу.




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
zone51
Дата 4.5.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 17.2.2006

Репутация: нет
Всего: 1



ksnk, 
Скажите а не подскажете как генерить длинный код. Большое спасибо

 smile  smile 


--------------------
The truth is out there
PM MAIL   Вверх
ksnk
Дата 4.5.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



zone51, например rand(10000,99999).rand(10000,99999).rand(10000,99999).rand(10000,99999) даст нам строку из 20 в меру случайных цифр.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
SneG0K
Дата 4.5.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Код

$random = md5(random(time(), time().random(0, time()));

Конкретный рендомsmile
Шанс повторения ->0
Разве что этот участок кода в одну секунду вызвать несколько миллионов разsmile, что не позволят современные мощностиsmile

Это сообщение отредактировал(а) SneG0K - 4.5.2009, 16:03
PM WWW Skype   Вверх
Djinn
Дата 5.5.2009, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 18.5.2007

Репутация: 1
Всего: 1



Цитата(SneG0K @  4.5.2009,  16:01 Найти цитируемый пост)
    
Код

$random = md5(random(time(), time().random(0, time()));


Конкретный рендомsmile
Шанс повторения ->0
Разве что этот участок кода в одну секунду вызвать несколько миллионов разsmile, что не позволят современные мощностиsmile


а почему от time() до time().random(0, time() ???

может:

Код

$random = md5(random(1000, random(0, time()));


так, или почему нет ?

Это сообщение отредактировал(а) Djinn - 5.5.2009, 01:08
PM MAIL   Вверх
SneG0K
Дата 5.5.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Djinn, а какая вообще разница? Проходит конкурс извращенности умаsmile
PM WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.