![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 3.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Już klęczę nad tym ponad 2 godziny i niestety jestem zmuszony do napisania tego tematu, mimo, że temat już wałkowany kilka set razy to ja nie mogę znaleźć rozwiązania dla mojej sprawy. Chodzi o odświeżanie wysłanego już formularza. Chcę skorzystać ze skryptu header ale już tyle kombinacji próbowałem, że po prostu nie mam siły, bo nic nie działa :/
Oraz plik do formularza
Formularz działa, po wysłaniu pojawia się Dziękujemy za wysłanie formularza! jednak chcę, żeby automatycznie strona się przeładowała, ponieważ po kliknięciu F5 ten sam wypełniony formularz jest ponownie wysyłany |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 22 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przyznaje się bez bicia że przeleciałęm powierzchownie wątek więc moja odpowiedź mogła paść / autor zmienił podejście
@Topic Z tego co zrozumiałem po 1 poście chodzi ci o odświeżenie już wysłanego formularza (domyślnie taki formularz prześle się ponownie). Jeżeli oto chodzi masz kilka możliwości 1. Przekierowanie użytkownika na inną pod stronę po obrobieniu formularza (ma to na celu "zgubienie" danych tak aby "F5" nie pytało o ponowne przesłanie formularza) 2. Zrobić w formularzu ukryte pole tekstowe. Jest to rozwiązanie nazywane po prostu tokenem. 3. Zablokować formularz przed ponownym przesłaniem (Zauważyłem że u mnie w pracy z ipada gdy miałeś wolne łącze udawało się pomimo tokena przesłać kilka razy ten sam formularz, wydaje mi się że to wina tego że sesje są odkładane dopiero po zakończeniu działania skryptu ale to inny temat akurat). Ja na twoim miejscu połączyłbym sposób nr 2 z sposobem nr 3 (jest on prosty zakładając że używasz JQuery). 2. Generujesz token Dodajesz do formularza pole
Tam gdzie sprawdzasz czy nadesłano poprawny formularz
A po upewnieniu się że formularz cały był ok. I dodaniu do bazy czy co tam danych zerujesz token
Dzięki takiemu działaniu masz pewność że osoba prześle ci tylko raz formularz (nawet jeżeli po wysłaniu odświeży go to nie będzie się zgadzał token) 3. Poniższy kod zabezpiecza formularz przed szybkim dbl klikiem na guziku wysyłającym (co przy wolnych łączach powoduje dwa przesłania i zdarza się że zabezpieczenie oparte o token zawodzi)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 15:53 |