Zablokowanie ponownego wysłania formularza

cześć, mam takie problem. Tworzę sobie formularz. Wysyłam nim dane (Html::submitButton(…)) i problem w tym, że po wysłaniu mogę się cofnąć do formularza i wysłać go ponownie z tymi samymi danymi (zduplikować je w bazie) po wysłaniu nie powinienem dostać exceptiona, submission data post czy coś w tym stylu ?

Jeśli nie chcesz mieć duplikatów w bazie, musisz stworzyć reguły walidacji do tego - nawet jeśli zablokujesz ponowne wysyłanie formularza w ten sposób, ktoś zawsze może wpisać jeszcze raz identyczne dane i wysłać forma ponownie.

Jeśli chcesz tylko zablokować opcję wysyłania już wysłanych danych, aby userzy nie robili tego przez przypadek klikając wstecz, wystarczy do formularza dodawać ukryty losowo generowany token i zapisywać go razem z resztą danych - przed zapisem sprawdzasz czy w bazie nie ma rekordu z takim tokenem, i jeśli jest, to odrzucasz żądanie.

no właśnie chodzi o to, że na ostatnim etapie(każdy etap to kolejna akcja kontrolera przekazująca dane do kolejnego widoku) mam np taki adres

repertuar/zakoncz/5?Miejsca[0]=2977&Miejsca[1]=2998 user wysyła ten formularz, dostaje przekierowanie na strone główną. Teraz może się cofnąć i znów będzie mógł wysłać ten sam formularz.

Ustaw sobie w sesji zmienną, którą będziesz modyfikował po przejściu każdego kroku. Jak wyślesz formularz to ją np. usuniesz. Ponowne odświeżenie strony i brak zmiennej = przekierowanie na stronę główną.

Możesz dodać ukryte pole z jakimś ID i potem validować, żeby ten ID był unikalny :)