| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > PHP - регистрация нового пользователя |
| Автор: Гость_Arina 29.4.2004, 18:37 |
| Ребята, дайте знать, есть ли возможность регистрации нового пользователя без введения функций администратора? Например, для нового пользователя запоминается идентификатор и генерируется пароль, который высылается на email. В случае, если пароль забыт, то по идентификатору его можно отыскать или сгенерировать снова? Вообще лучше не хранить пароли, а заново сгенерировать.. Есть ли такая возможность и как ее осуществить? Огромное пасибо |
| Автор: 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 | ||||
|
| Автор: Гость_Arina 4.5.2004, 11:29 |
| Т.е. я понимаю так: в БД сделать поле для такого ключа, ключ генерируется при регистрации нового пользователя и сохраняется в БД, если пользователь забыл пароль, то по его адресу эл. почты и логину или имени идет проверка и для него генерируется новый ключ и пароль? |
| Автор: Арина 4.5.2004, 11:30 |
| Спасибо всем! |
| Автор: Арина 4.5.2004, 11:40 | ||
А при регистрации нового пользователя тоже скрипт генерит пароль или запросить парольот пользователя и зашифровать его? |
| Автор: Secandr 4.5.2004, 12:17 |
| лучше генерировать. |
| Автор: Арина 4.5.2004, 12:57 | ||
Secandr, но ведь юзер легко забудет такой пароль |
| Автор: Secandr 4.5.2004, 12:59 |
| скажим так: Если ресурс не ответственный, то можно разрешить пользователю вводить пароль. Если нужна безопасность, то лучше генерировать пароль - тогда будет невозможно его подобрать. |
| Автор: Арина 4.5.2004, 13:05 |
| Генерировать, а потом еще и зашифровать, да? Теперь все понятно, кроме ссылки, по которой юзер идет и вводит ключ активации. Надо сделать отдельную страничку с формой для ввода ключа? Я видела на некоторый сайтах, что это сделано так: пользователю дается ссылка, а там в поле указан ключ и его надо ввести. Это тоже самое, только на емайл уже не посылается? |
| Автор: Secandr 4.5.2004, 13:37 | ||
| на емаи отправлять обязательно, поскольку ввести имя и e-mail может кто угодно. А прочесть емаил может только пользователь. Ещё раз: пользователь получает письмо вида:
А сервер сгенерировав пароль забывает про него и помнит только md5 хеш. |
| Автор: Арина 4.5.2004, 13:44 |
| Ясненько, спасибо! |