Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyzerowanie historii przeglądania strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kryspinus
Witam, mam taki problem:
Mam na stronie zalogowany.php przycisk formularza, po naciśnięciu go przeładowywana jest strona i sprawdzany jest warunek, jeśli warunek jest spełniony to funkcją header w PHP przechodzę na stronę test.php. I teraz mam pytanie, czy da się tak zrobić, żeby po wejściu na stronę test.php przycisk wstecz w przeglądarce nie wskazywał poprzedniej strony (strony zalogowany.php) questionmark.gif
Nie chciałbym używać blokowania przycisku wstecz, bo to da się obejść, tylko jakoś wyzerować historię przeglądania strony. Z tego co się orientuję, to jeśli jest taka możliwość to zapewne za pomocą javascriptu, dlatego umieszczam moje zapytanie w tym forum.
Z góry dzięki za odpowiedzi
pawkow
hmmm nie da sie w JS manipulować historią, a nawet jeśli w co wątpię, to absolutnie nie jest to wskazane, powiedz co chcesz osiągnąć a wymyślimy rozsądniejsze rozwiązanie smile.gif
kryspinus
Chciałbym osiągnąć to, żeby po wejściu na stronę test.php nie dało się już z niej wejść spowrotem na stronę zalogowany.php inaczej jak tylko poprzez zakończenie testu odpowiednim przyciskiem. A myślę, że może skoro da się poprzez javascript wejść na poprzednią stronę (funkcją history(-1)) to może da się jakoś podmienić tą historię na adres innej strony (np. test.php)
pawkow
trzymaj w sesji dane od których uzależniasz to czy na stronę można wejść czy nie - jeśli tak to ok, jeśli nie rób redirect smile.gif Sprawa prosta, i to nie musi być sesja.
kryspinus
No ok, ale to jednak nie rozwiązuje mojego problemu, bo jeśli ktoś wciśnie wstecz to i tak i tak wejdzie na stronę wcześniejszą bo przeglądarka nie sprawdza wtedy żadnych danych jeśli się nie mylę.
pawkow
ale PHP może sprawdzić.
kryspinus
Cytat(pawkow @ 4.05.2009, 17:47:52 ) *
trzymaj w sesji dane od których uzależniasz to czy na stronę można wejść czy nie - jeśli tak to ok, jeśli nie rób redirect smile.gif Sprawa prosta, i to nie musi być sesja.


Sprawdzałem to dzisiaj i rzeczywiście działa, czyli jak dam wstecz to sprawdzany jest warunek i jeśli nie jest spełniony to znowu jest powrót na stronę, z której chcę wyjść. Jednak jak dam kilka razy wstecz to mnie całkiem wylogowuje, czyli nie do końca jest to rozwiązaniem mojego problemu. Najlepiej by było jakby strony na które wchodzę nie dodawały się do historii. Tak, żeby przycisk wstecz był pusty. Nie wiem tylko czy da się coś takiego zrobić.
kamil4u
Poczytaj o nagłówkach w PHP i ustaw je tak, żeby kazały przeglądarce nie zapisywać cache smile.gif
kryspinus
Cytat(kamil4u @ 8.05.2009, 16:44:21 ) *
Poczytaj o nagłówkach w PHP i ustaw je tak, żeby kazały przeglądarce nie zapisywać cache smile.gif


W manualu znalazłem coś takiego: (Jednak nadal to nic nie daje, nadal można powrócić do strony poprzedniej)


Skrypty PHP często służą do generowania dynamiczej treści, która nie może być buforowana przez klienta czy serwer proxy. Pamięć cache (bufor) w większości tych urządzeń da się wyłączyć dzięki:



CODE
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // data w przeszłości
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// ciągle modyfikowany
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
?>


Notatka: Możesz zaobserwować, że strony nie są buforowane, nawet jeśli nie użyłeś wszystkich ww. nagłówków. Jest wiele sposobów, w jakie użytkownicy mogą skonfigurować swoje przeglądarki, aby zmienić standardowy sposób buforowania. Przez wysłanie powyższych nagłówków, powinno się udać ominąć wszystkie ustawienia pozwalające na zbuforowanie wyniku pracy twojego skryptu.

kufalo
location.replace('test.php') - jezeli tak wejdziesz na podstrone test.php zastapi ona w historii przegladania poprzednia podstrone
kryspinus
Cytat(kufalo @ 8.05.2009, 17:01:11 ) *
location.replace('test.php') - jezeli tak wejdziesz na podstrone test.php zastapi ona w historii przegladania poprzednia podstrone


Rzeczywiście działa, dzięki smile.gif A mam jeszcze pytanie, jest możliwe, żeby od razu zastąpiło mi całą poprzednią historię?? Bo rozumiem, że to zastępuje tylko w historii tą stronę z której przyszedłem, a poprzednie??
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.