Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > PHP - регистрация нового пользователя


Автор: Гость_Arina 29.4.2004, 18:37
Ребята, дайте знать, есть ли возможность регистрации нового пользователя без введения функций администратора?
Например, для нового пользователя запоминается идентификатор и генерируется пароль, который высылается на email.
В случае, если пароль забыт, то по идентификатору его можно отыскать или сгенерировать снова? Вообще лучше не хранить пароли, а заново сгенерировать..

Есть ли такая возможность и как ее осуществить? Огромное пасибоsmile.gif

Автор: Secandr 30.4.2004, 07:26
Всё просто.
Пользователь заполняет форму, отправляет её постом на сервер, php скрипт добавляет запись в базу, в чём сложность?

Задавайте конкретный вопрос.

Автор: IZ@TOP 30.4.2004, 10:10
Цитата
В случае, если пароль забыт, то по идентификатору его можно отыскать или сгенерировать снова? Вообще лучше не хранить пароли, а заново сгенерировать..

Юзер забыл пароль -> Зашел на страницу восстановления пароля -> Ввел свой логин и маил -> РНР скрипт нашел запись юзера в базе данных -> проверил правильность введенного мейла -> Отправил на мейл юзеру ссылку по которой тот должен пройти чтобы сменить пароль -> Юзер получил ссылку и прошел по ней на сайт -> РНР скрипт сгенерировал новый пароль (так как мы не дураки и у нас все пароли зашифрованы md5, старый пароль мы отправить не сможем) и отправил его юзеру -> РНР внес измененный пароль в базу данных.

Вроде так.

Автор: Secandr 30.4.2004, 10:22
в итоге нужно иметь базу с обязательными полями:
логин, шифрованый пароль, e-mail, ключ активации.

логин, шифрованый пароль, e-mail - это понятно для чего.

ключ активации - при нормальной работе - пустая строка. Если пользователь забыл пароль и ввёл емаил и логин для получение нового в поле "ключ активации" добавляется случайное значение символов из 10. пользователь получает ссылку в письме: http://sait.domen.ru/pass.php?key=m;jsanbz[poermbvcuirtcvx при переходе по такой ссылке пользователю высылают новый пароль, а значение "ключ активации" обнуляется.

Автор: IZ@TOP 30.4.2004, 10:34
Secandr, ключ активации лучше хранить в отдельной таблице, но это наверное не обязательно. Если база будет на файлах, могу дать скрипт восстановления пароля. Если под MySQl то лучше наверное будет его делать заново.

Автор: Гость_Arina 30.4.2004, 14:14
Можно поподробнее про активационный ключ. Кажется, я это и имела ввиду, но не имею представления как сделать.

Автор: Secandr 30.4.2004, 16:11
ещё раз:
1. человек заполняет форму: вводит имя и е-маил, отправляет запрос на сервер
2. скрипт сверяет имя и е-маил и в случае если всё совпало делает следующее:
2.1. генерирует ключ вмда "sdlkjfhanm,xczpw./msd" и запоминает его в БД
2.2. посылает письмо пользователю с ключом и просьбой зайти на сайт и ввести
3. пользователь получает письмо, идёт на сайт и вводит ключ
4. скрипт получает ключ, сравнивает, меняет пароль на случайный и посылает на мыло пользователю
5. пользователь получает пароль и радуется.

что не ясно?

Автор: Гость_Arina 4.5.2004, 11:07
А почему ключ именно такого вида и как это он генерируется?

Автор: MuToGeN 4.5.2004, 11:13
Цитата
А почему ключ именно такого вида
Чтоб не подобрали
Цитата
и как это он генерируется?
rand(), chr()

Автор: Гость_Arina 4.5.2004, 11:29
Т.е. я понимаю так:
в БД сделать поле для такого ключа,
ключ генерируется при регистрации нового пользователя и сохраняется в БД,
если пользователь забыл пароль, то по его адресу эл. почты и логину или имени идет проверка и для него генерируется новый ключ и пароль?

Автор: Арина 4.5.2004, 11:30
Спасибо всем!

Автор: Арина 4.5.2004, 11:40
Цитата(IZ @ 30.4.2004, 10:10)

РНР скрипт сгенерировал новый пароль (так как мы не дураки и у нас все пароли зашифрованы md5, старый пароль мы отправить не сможем) и отправил его юзеру -> РНР внес измененный пароль в базу данных.


А при регистрации нового пользователя тоже скрипт генерит пароль или запросить парольот пользователя и зашифровать его?

Автор: Secandr 4.5.2004, 12:17
лучше генерировать.

Автор: Арина 4.5.2004, 12:57
Цитата(Secandr @ 4.5.2004, 12:17)
лучше генерировать.

Secandr, но ведь юзер легко забудет такой пароль

Автор: Secandr 4.5.2004, 12:59
скажим так:
Если ресурс не ответственный, то можно разрешить пользователю вводить пароль.
Если нужна безопасность, то лучше генерировать пароль - тогда будет невозможно его подобрать.

Автор: Арина 4.5.2004, 13:05
Генерировать, а потом еще и зашифровать, да?

Теперь все понятно, кроме ссылки, по которой юзер идет и вводит ключ активации.
Надо сделать отдельную страничку с формой для ввода ключа?

Я видела на некоторый сайтах, что это сделано так:
пользователю дается ссылка, а там в поле указан ключ и его надо ввести.

Это тоже самое, только на емайл уже не посылается?

Автор: Secandr 4.5.2004, 13:37
на емаи отправлять обязательно, поскольку ввести имя и e-mail может кто угодно. А прочесть емаил может только пользователь.
Ещё раз:
пользователь получает письмо вида:
Цитата
ваш код:"dfgkljdflkg;sjdkfgj;skldfjgds"
Перейдите по ссылке http://myserver/get_password.php и введите ключ без кавычек.
Пользователь заходит, вводит и получает емаил с паролем.

А сервер сгенерировав пароль забывает про него и помнит только md5 хеш.

Автор: Арина 4.5.2004, 13:44
Ясненько, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)