![]() ![]() |
| --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. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 78 Dołączył: 4.11.2008 Skąd: Kraków Ostrzeżenie: (0%)
|
|
|
|
|
![]() ![]() |
|
Aktualny czas: 26.12.2025 - 08:24 |