Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Odświerzanie strony, refresh i "przejdz do poprzedniej strony" ... Jak zaradzić?
Forum PHP.pl > Forum > Przedszkole
miccom
Witam.
ja stosuję header, ale jak sobie poradzić ze zmiennymi GET i przyciskiem przeglądarki "przejdź do poprzedniej strony"?
Mój system działa tak:
na stronie etap1.php wykonuję pewne obliczenia, podstawiam zmienne,user wybiera pewne opcje, i metodą GET dane wysyłam do pliku etap2.php.
Tam następuje obróbka, i obrobione zmienne wysyłam do skryptu etap3.php
Tam wykonuję operacje na bazie danych, i przez header przenoszę usera do strony etap.php
I myślałem że jest ok, ale niestety ze strony etap.php można przejść ponownie do strony etap2.php wykorzystując już dane przerobione! klikając przycisk przeglądarki "przejdź do poprzedniej strony"
A ja chciałbym aby po wykonaniu zadań i zapytań do bazy w etap3.php, gość ponownie wykonał zadania i dokonał "wyborów" na stronie etap.php
Jak się zabezpieczyć przed tym? Bo do refresh mam sesje użyte.
Pilsener
Kolego, czemu tak komplikujesz sobie życie? Jądrem Twojego systemu powinien być plik index.php umieszczony w folderze głównym, tam trafiają wszystkie zmienne a potrzebne fragmenty kodu po prostu includujesz z innych plików i na tej podstawie generujesz gotową stronę, inaczej zamęczysz się przekazując dane między skryptami.

Możliwe rozwiązania:
1. Modyfikujesz nagłówki http tak, że strona nie jest przechowywana w cache przeglądarki i gdy ktoś kliknie "wstecz" pojawia się komunikat "strona wygasła"
2. Może w Twoim wypadku wystarczy tylko taka modyfikacja, by przeglądarka nie zapamiętywała danych wprowadzonych do formularzy? Poczytaj o tym, było na forum kilka razy.
3. Możesz wykryć użycie przycisku "wstecz" poprzez HTTP_REFERER czy używając JS
4. Zapisujesz informacje o poczynaniach użytkownika i w zależności od tego podejmujesz określoną akcję (metoda najpewniejsza, bo pozostałe może chytry użytkownik obejść). Najprościej wygenerować jakiś token, który powiąże danego użytkownika z formularzem i pozwolić użytkownikowi obrabiać tylko jeden formularz - bo chyba o to Tobie chodzi, że użytkownik może dwa razy wysłać ten sam formularz?

Ogólnie to nie widziałem jak to działa i czemu ma służyć, więc trudno coś bardziej szczegółowo doradzić.


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.