Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
ponowne wysłanie formularza przy odświeżeniu - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: ponowne wysłanie formularza przy odświeżeniu (/thread-ponowne-wyslanie-formularza-przy-od%C5%9Bwiezeniu)



ponowne wysłanie formularza przy odświeżeniu - camelrafal - 02-10-2012

jak rozwiązujecie problem ponownego wysłania formularza po odświeżeniu strony?


RE: ponowne wysłanie formularza przy odświeżeniu - Pedro84 - 02-10-2012

Standardowo: http://en.wikipedia.org/wiki/Post/Redirect/Get


RE: ponowne wysłanie formularza przy odświeżeniu - Morfeusz_2005 - 02-10-2012

Ja kiedyś po wysłaniu formularza zawsze zerowałem zmienne.


RE: ponowne wysłanie formularza przy odświeżeniu - camelrafal - 02-10-2012

czyli z tego co rozumiem po wykonaniu jakies operacji na danych z formularza jeżeli mam sukces przekierowuje na inną stronę (z komunikatem o sukcesie np)

problem w tym że po przekierowaniu na stronę z komunikatem użytkownik trafia na "ślepy zauek" w stronie

a jeżeli kliknie wstecz znowu wyświetli mu sie formularz zaśmiecony danymi które przed chwilą wysłał (fuj)

oczywiście odsyłając na stronę z komunikatem można przekazać jej adres (GET) do którego ma wracać i wyświetlić ten adres w formie linku "wróć/powrót" ale jest to niebezpieczne i raczej kiepskie rozwiązanie

można też przekazać adres zapisując go w sessji i na stronie z komunikatem odczytać tą sesje i wyswitelic adres, ale co jeżeli użytkownik ma pootwierane kilka zakładek z różnymi formularzami i wyśle je jednocześnie? (na wszystkich stronach z komunikatem będzie ten sam link)

czy to znowu kolejny ślepy zauek w webmasterce?

swoją drogą ciekawi mnie jak ten problem rozwiązany jest na tym forum, bo przecież jest okienko przekierowania

(02-10-2012, 18:54)Morfeusz_2005 napisał(a): Ja kiedyś po wysłaniu formularza zawsze zerowałem zmienne.

chodzi Ci op $_POST['zmienna'] ??
chyba nic to nie daje nagłówki są wysyłane ponownie


RE: ponowne wysłanie formularza przy odświeżeniu - Pedro84 - 02-10-2012

Nie do innej, ale do tej SAMEJ strony, gdzie umieszczasz, coś takiego:
Kod:
$this->message = isset($_GET['success']) ?: 'Twój formularz został wysłany';
a w momencie, gdy formularz zostanie wysłany przekierowujesz usera do tej samej strony, ale dodajesz parametr GET.

Zachowanie po kliknięciu wstecz jest zależne od przeglądarki - tego nie unikniesz.

Sesja? Zerowanie zmiennych? Wymyślanie koła na nowo.


RE: ponowne wysłanie formularza przy odświeżeniu - camelrafal - 02-10-2012

aha!
do tej samej strony, nie do innej : ]

jak do tej samej to nie trzeba klikać wstecz czyli problem rozwiązany


RE: ponowne wysłanie formularza przy odświeżeniu - Pedro84 - 02-10-2012

(02-10-2012, 20:11)camelrafal napisał(a): aha!
do tej samej strony, nie do innej : ]

jak do tej samej to nie trzeba klikać wstecz czyli problem rozwiązany
Smile

Dodatkowo, możesz sobie formularz ukryć, pokazać - ogólnie świetna technika.