Пока вы не против того, чтобы у вашего пользователя был Javascript, я бы использовал AJAX. Допустим, у вас есть 50 полей, которые вы можете логически объединить в 4 различных набора - первое может касаться человека, запрашивающего имя, адрес электронной почты и т. Д., А следующий набор запрашивает историческую информацию или информацию о занятости - как в приложении.
Создайте одну форму для каждого набора, а затем представьте нового пользователя первым. Когда он завершает первую страницу, вместо кнопки «Отправить» или «Зарегистрироваться» используйте вызов AJAX и кнопку «Далее», чтобы получить информацию и переключиться на следующую страницу формы со следующим набором полей. Вы можете использовать вызовы AJAX для хранения информации во временной таблице в вашей базе данных, а затем, когда весь процесс завершится, вы можете записать ее в свою таблицу member / users.
Вы можете сделать то же самое, что и другие опросы или проверки, и добавить «заголовок» для каждой страницы формы над полями формы, чтобы по мере того, как пользователь проходил регистрацию, он мог следить за своим прогрессом.
Я бы порекомендовал проверить кассу Amazon или любой другой многостраничный опрос (вы можете даже настроить его самостоятельно в Survey Monkey), чтобы увидеть, как можно логически разбить большое количество полей формы в удобный для пользователя способ.
Надеюсь, это поможет.