[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пошаговая форма регистрации
Страницы: 1, 2
McLotos
Всем привет! Возникла необходимость сделать пошаговую форму регистрации. К форме подкручен ajax, чтобы отсылать информацию о данных, введенных в шаг. Не могу решить какой вариант лучше сделать - возвращать только id созданной сущности или возвращать все данные, введенные в первом шаге регистрации?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
AllesKlar
Возвращать только те данные, которые необходимы для работы следующих шагов.
Необходимость и достаточность.

_____________
[продано копирайтерам]
Valick
McLotos, возвращай скрытыми полями или ещё лучше куками все данные, что бы тот кто регистрируется не зависел от времени сессии и сам процесс регистрации мог длится неограниченное время.
Ужасно бесит когда надо по 500 раз заполнять форму регистрации из-за какой либо ошибки.
Регистрация прежде всего должна быть удобной для пользователя.

_____________
Стимулятор ~yoomoney - 41001303250491
Эли4ка
Цитата (McLotos @ 5.06.2019 - 08:20)
Всем привет! Возникла необходимость сделать пошаговую форму регистрации. К форме подкручен ajax, чтобы отсылать информацию о данных, введенных в шаг. Не могу решить какой вариант лучше сделать - возвращать только id созданной сущности или возвращать все данные, введенные в первом шаге регистрации?

А зачем вообще возвращать что-либо?
Допустим первый этап имя, почта(телефон). Второй дата рождения, третий пароль, четвертый секрет вопрос для восстановления пароля.
McLotos
Цитата (AllesKlar @ 6.06.2019 - 02:39)
Необходимость и достаточность.

Отличная идея. тогда буду возвращать только 1 поле =)
Цитата (Valick @ 6.06.2019 - 02:44)
или ещё лучше куками все данные

запихивать в куку пользователя весь бред, который он ввел в форму? неее.
Цитата (Valick @ 6.06.2019 - 02:44)
Ужасно бесит когда надо по 500 раз заполнять форму регистрации из-за какой либо ошибки.

это можно решить и без куки, просто сохранением состояния front-приложения. у меня же SPA
Цитата (Эли4ка @ 6.06.2019 - 12:26)
А зачем вообще возвращать что-либо?

эээ... ну какбы на первом шаге я отправил например ФИО и email, на втором шаге я отправил уже все остальные данные, как говорил @Valick между первым и вторым шагом могла пройти неделя, как сервер поймет от кого пришли данные? самый простой способ - сохранить email и фио в базу, получить id, вернуть его в браузер и пусть он передается дальше во всех следующих шагах регистрации. В браузере он будет висеть не в куках а в самом приложении, на уровне кода, как часть сущности пользователя

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
comolov
Цитата
самый простой способ - сохранить email и фио в базу, получить id, вернуть его в браузер и пусть он передается дальше во всех следующих шагах регистрации.

Лучше хеш тогда, id ведь можно поменять.
AllesKlar
Цитата (McLotos @ 6.06.2019 - 10:17)
как говорил @Valick между первым и вторым шагом могла пройти неделя, как сервер поймет от кого пришли данные?

Ерунда полная.
Достаточно времени жизни сессии.
Никто неделю регистрироваться не будет.
Если процесс регистрации за время жизни сессии не закончился, значит пользователь не захотел регистрироваться и покинул ресурс.

С таким же успехом можно предусмотреть вторжение инопланетян и воровство ими физического сервера, на котором скрипт регистрации крутился. Следовательно, необходимо предусмотреть облачный сервис, развернуть API, Failover-Cluster и т.д.

Чувствуешь, бредом несет smile.gif

_____________
[продано копирайтерам]
McLotos
Цитата (AllesKlar @ 6.06.2019 - 16:16)
С таким же успехом можно предусмотреть вторжение инопланетян и воровство ими физического сервера, на котором скрипт регистрации крутился. Следовательно, необходимо предусмотреть облачный сервис, развернуть API, Failover-Cluster и т.д.

блин, а думаешь этого всего не нужно? вот черт, а я почти закончил настраивать репликацию между дата-центрами laugh.gif
Цитата (comolov @ 6.06.2019 - 15:54)
Лучше хеш тогда, id ведь можно поменять.

а какой хэш? UUID? CSRF-token?
Цитата (Santehnick @ 6.06.2019 - 16:33)
У тебя же SPA. Сохраняй всё в local storage, а в последнем шаге отправляй все данные на сервер. Пошаговая регистрация в 1 запрос к серверу.

Так и планировалось изначально, но бизнес хочет иметь хотя бы email и телефон человека который не закончил регистрацию, чтобы потом догнать его письмами и смс. Поэтому первый шаг отправляется сразу, а остальные хранятся локально и отправляются с последним шагом
Цитата (Santehnick @ 6.06.2019 - 16:33)
Но если принципиально нужно хранить всякий мусор на сервере, то уже правильно подметили, что id подменяется на другой (админский например) и устанавливается другой email/пароль. Изи.

тогда csrf-token который будет меняться после каждого запроса к серверу?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Valick
AllesKlar, сам ты бред.
Пользователь регистрируется, на предпоследнем этапе к примеру появляется необходимость срочно уйти. Через пару дней пользователь возвращается к регистрации и без проблем её завершает.
Цитата (Santehnick @ 6.06.2019 - 13:33)
У тебя же SPA. Сохраняй всё в local storage, а в последнем шаге отправляй все данные на сервер.

чем это принципиально отличается от хранения в куках?
Цитата (McLotos @ 6.06.2019 - 11:17)
самый простой способ - сохранить email и фио в базу, получить id, вернуть его в браузер и пусть он передается дальше во всех следующих шагах регистрации.

вот это действительно уже бред
как думаешь сколько времени надо что бы написать бота который забъёт под завяз твою БД мусором (о котором уже упоминали)


_____________
Стимулятор ~yoomoney - 41001303250491
comolov
Цитата
а какой хэш? UUID? CSRF-token?

Santehnick все сказал, приведу лишь возможный пример
$user_uid = md5(mt_rand().time());
FatCat
Цитата (Valick @ 6.06.2019 - 15:27)
сколько времени надо что бы написать бота который забъёт под завяз твою БД мусором

Цитата (McLotos @ 6.06.2019 - 13:36)
бизнес хочет иметь хотя бы email и телефон человека который не закончил регистрацию, чтобы потом догнать его письмами и смс.



_____________
Бесплатному сыру в дырки не заглядывают...
Valick
Цитата (FatCat @ 7.06.2019 - 10:26)
бизнес хочет иметь хотя бы email и телефон человека который не закончил регистрацию, чтобы потом догнать его письмами и смс.

значит, капчу надо вводить на первой странице регистрации и писать в БД email и телефон
но это ничего не меняет

_____________
Стимулятор ~yoomoney - 41001303250491
McLotos
Valick
кажется ты усложняешь.
Задача ведь простая. Там есть неплохая защита от ботов.
Чтобы попасть на второй шаг, нужно прийти по ссылке из email, а чтобы пройти на 3й шаг, нужно во втором шаге ввести код из смс. Так что боты не страшны =)

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Valick
Цитата (McLotos @ 11.06.2019 - 10:04)
Чтобы попасть на второй шаг, нужно прийти по ссылке из email, а чтобы пройти на 3й шаг, нужно во втором шаге ввести код из смс.

да как у тебя язык поворачивается говорить, что я усложняю biggrin.gif

_____________
Стимулятор ~yoomoney - 41001303250491
McLotos
laugh.gif боты точно не страшны

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.