Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Funkcja mail() - odświeżanie strony - 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ł: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Funkcja mail() - odświeżanie strony (/thread-funkcja-mail-od%C5%9Bwiezanie-strony)



Funkcja mail() - odświeżanie strony - pawstrze - 09-12-2012

Cześć,

mam takie pytanie.

Mam sobie formularz kontaktowy na stronie głównej. Chcę, żeby po kliknięciu Wyślij, przerzuciło mnie ponownie na tę samą stronę... Korzystam z metody POST, pole action puste.

Chodzi o to, że jak wyświetli mi się po wysłaniu wiadomości ponownie strona z formularzem, to w sytuacji, gdy użytkownik kliknie "odśwież" w przeglądarce, może wysłać wiadomość jeszcze raz...

I moje pytanie jest takie jak sie przed tym bronić...?

z góry dzięki,
pawstrze


RE: Funkcja mail() - odświeżanie strony - mateo - 09-12-2012

Po wysłaniu maila przekieruj na stronę, gdzie poinformujesz o poprawnym wysłaniu maila. Z niej możesz dać odnośnik do formularza lub na główną.


RE: Funkcja mail() - odświeżanie strony - pawstrze - 09-12-2012

(09-12-2012, 23:27)mateo napisał(a): Po wysłaniu maila przekieruj na stronę, gdzie poinformujesz o poprawnym wysłaniu maila. Z niej możesz dać odnośnik do formularza lub na główną.

Haha, dość chałupniczo, ale OK Smile Bo teoretycznie to jakieś ciasteczka, czy coś, nie ?


RE: Funkcja mail() - odświeżanie strony - Intelactive - 10-12-2012

A nie lepiej po prostu po wysłaniu wywalić echo?

I na co Ci cookie do tego?


RE: Funkcja mail() - odświeżanie strony - andrzejhi - 10-12-2012

Najlepiej poszukaj w necie jak zabezpieczyć formularz przed ponownym wysłaniem.
Jest na to kilka sposobów. Ciastka są jednym z takich sposobów a dokładniej to otwarcie sesji.
Możesz otworzyć sesję i w niej zapisać jakąś losową liczbę. Tą samą liczbę zapisujesz w ukrytym polu formularza. Odbierając dane z formularza sprawdzasz czy liczba z sesji jest taka sama jak ta w formularzu. Jeśli tak to wysyłasz maila, ustawiasz nową liczbę w sesji i wstawiasz ją do formularza. Wtedy odświeżenie strony nie spowoduję ponownego wysłania formularza.


RE: Funkcja mail() - odświeżanie strony - mateo - 10-12-2012

Ciastka to nie sesje...


RE: Funkcja mail() - odświeżanie strony - andrzejhi - 12-12-2012

ehe to utrzymaj sesje bez ciastek :-). Ale w zasadzie masz rację.