Задать вопрос
Core2Quad777
@Core2Quad777

Как сделать многостраничный сайт и форму регистрации?

Есть пара вопросов, про то, как делать сайт:
1.Как писать форму регистрации? Сам шаблон формы у меня есть из Bootstrap, как сделать пересылку данных из формы в бд тоже нашёл, но что делать с кнопками "Забыли пароль" и тому подобное? В вордпрессе для функционала этих кнопок создавалась отдельная страница, и при нажатие на кнопку переадресовывала на эту страницу. Можно ли делать тоже самое?
2.Как сделать сайт многостраничным? Писать каждую страницу по отдельности, и просто переадресовывать на нужную страницу, или же есть более быстрые варианты?
  • Вопрос задан
  • 229 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
AlexNest
@AlexNest
Работаю с Python/Django
1. Ну тут минимум 2 варианта:

I. Юзер вводит логин/мыло, сервер генерирует новый пароль, сохраняет хеш в базу а чистую копию отсылает на почту.
II. Юзер вводит логин/мыло, сервер генерирует ссылку по типу domain.com/reset_pasword?token=dfsfgesdfs34asd...., где значение token является хешем - зашифрованным при помощи md5 логином и timestamp`ом, который сохраняется в бд (например в таблицу restet_password_history со столбцами: user_id | hash | is_changed ). При переходе по такой ссылке сервер проверяет, есть ли в базе данный хеш и is_changed == false. Если да, то выводится форма для ввода пароля. После отправки в таблицу с юзером сохраняется хеш нового пароля, а is_changed записи меняется на true.
P.S. Во втором варианте неплохо было бы сделать "срок жизни" такой ссылки, т.е. сохранить в указанной таблице текущие дату и время+час, к примеру, а при переходе по ссылке проверять текущее время.

Это первое, что пришло в голову.
2. Смотря что вы имеете в виду под многостраничностью - если простые страницы по типу "о нас/контакты/правила" то да, руками. А если динамические по типу профилей/статей, то для каждой типовой страницы создается шаблон, в который выводятся данные из БД.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы