| --George-- |
Post
#1
|
|
Goście |
Witam,
Jestem tu nowy, więc z racji tego "Pozdrawiam wszytkich Polaków!". Mam zagwozdkę w zabezpieczeniu kodu przed podwójnym wykonaniem, wynikającym z akcji Odświeżania strony bądź Cofania do strony poprzedniej. Kilka zdarzeń dla przykładu: 1) klikam dodaj przedmiot do koszyka - odnośnik <a href> z odpowiednimi parametrami $_GET, powoduje dodanie przedmiotu do koszyka, ale odświeżenie strony (Refresh), bądź cofnięcie do poprzedniej (Back), powoduje ponowne dodanie do koszyka, 2) Realizacja zamówienia - Submit w formularzu <form>, powoduje dodanie wpisu do bazy i wysyłka e-maila, ale odświeżenie strony (Refresh), bądź cofnięcie do poprzedniej (Back), powoduje ponowne dodanie wpisu do bazy i wysłanie drugiego e-maila. Próbowałem coś znaleźć w necie i wiem, że jest to powszechny problem u nowicjuszy. Jako rozwiązanie 1 błędu ludzie podają zastosowanie przekierowania header (Location), z tym, że u mnie nie ma to zastosowania, bo poniższy kod wykonywany jest w zawartości strony, za kodem html i wyskakuje mi komunikat "Headers already sent", z racji tego, że header można umieścić tylko przed kodem html. Jako rozwiązanie 2 błędu podają wstawienie ukrytego pola w formularzu, zawierającego wartość losową, która jest też zapisywana do sesji, po wykonaniu kodu sesja jest czyszczona. Na początku kodu umieszcza się porównanie wartości z pola ukrytego i z sesji. Jeśli się zgadzają, to jedziemy, jesli nie to stop. Mam pytanie - w jaki sposób można rozwiązać problem 1? Czy jest może jakieś uniwersalne rozwiązanie dla obu przypadków, ale inne niż blokada Refresh&Back, które wydaje się bezsensowne, bo ogranicza funkcjonalność. Z góry dzięki za jakąkolwiek pomoc, Pozdrawiam. |
|
|
|
-George- [HTML][PHP]$_GET - podwójne wykonanie kodu po Refresh&Back 28.02.2011, 09:58:09
zordon http://phpedia.pl/wiki/Cannot_add_header_i...rs_al... 28.02.2011, 13:24:02 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 05:01 |