Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z sesjami ... help please
Forum PHP.pl > Forum > Przedszkole
lyg
Opis sytuacji : mam kilka stron , pierwsza logowania , gdzie dane pomiędzy kolejnymi stronami sa przekazywane w sesji , na kazdej stronie sprawdzam na poczatku czy uzytkownik jest zalogowany , a na stronie logowania czyszcze zmienne sesyjne. I to działa Ok ,ale.... kiedy wyloguje sie i potem wcisne przycisk wstecz z poziomu przegladarki wracam do ostatniej strony jako zalogowany użytkownik , czy ktoś może miał podobny problem i sobie z nim poradzil. Dziekuje za kazda pomoc
crash
Było nieraz. Nie da się z tym nic zrobić, dasz Wróć to wrócisz do stanu z sesją, ale ona już nie istneje i nic nie możesz zrobić.
kamo.
tak są zbudowane przegladarki
działa to tak ze strona jest generowana po stronie serwera do html-a i to html jest wyswietlany przez przegladarke
strony te sa zapisywane na dysku twardym i jak cofasz to wczytuje z dysku twardego (badz ramu) a nie z serwera
sprawa nie ma rozwiazania bo nie mozesz czyscic histori, badz plików z kopią strony odwiedzajacego
chyba ze hackujesz winksmiley.jpg
Guest
No tak jak rozwiązać ten problem przecież np. na stronach banków , albo np. portali(przy poczcie) ten problem jest rozwiązany i jak po wylogowaniu kilkam wstecz to nie wracam do poprzedniej strony jako zalogowany uzytkownik , ale wyskakuje blad ze nie jestem zalogowany.
crash
No nie wiem. Jakoś nigdzie nie zauważyłem, żeby po kliknięciu na Wróć wywalało błąd. Przecież Wróć nie przeładowuje strony docelowej...
id4
Witam

W momencie wylogowania pzeładuj stronę poprzez header("Location: "); bądź przy pomocy <script language="javascript"></script> - może pomóc - ja zawsze tak robię i nie zauważyłem żeby były jakieś problemy. Po wylogowaniu możesz np. powracać na stronę główną.
Termit_
Możesz też oszukiwać, wysyłając odpowiednie nagłówki, które będą kazały przeglądarce za każdym razem wczytywać stronę z internetu (miast z cache).
Np.
  1. <?php
  2. // Work around for \"current\" Apache 2 + php module which seems to not
  3. // cope with private cache control setting
  4. if (!empty($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache/2'))
  5. header ('Cache-Control: no-cache, pre-check=0, post-check=0');
  6. else
  7. header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
  8.  
  9. header ('Expires: 0');
  10. header ('Pragma: no-cache');
  11.  
  12. ?>
brachu
@id4 to jednak nie dziala... chcialem zrobic tak samo zeby nie mozna sie bylo cofnac, ale kurcze jednak sie da.... a przynajmniej pod mozilla po kilkukrotnym kliknieciu wstecz zapyta sie czy przeslac dane jak dasz ok to jestes znowu zalogowany jako uzytkownik ktorego wlasnie wylogowales....
crash
Na upartego możesz wywołać przez JS otwarcie nowego okna i zamknięcie aktualnego co definitywnie uniemożliwi cofnięcie smile.gif Tylko nie wiem jak tam z potwierdzaniem zamknięcia okna przez close(); niewywołanego przez open();
id4
Cytat(crashu @ 2005-06-28 11:18:59)
Na upartego możesz wywołać przez JS otwarcie nowego okna i zamknięcie aktualnego co definitywnie uniemożliwi cofnięcie smile.gif Tylko nie wiem jak tam z potwierdzaniem zamknięcia okna przez close(); niewywołanego przez open();

A czy nie jest tak, że przy otwarciu nowego okna przechodzi sesja z okna które go wywołało? Mnie się wyda je że tak jest, bo jak jestem zalogowany i otworzę coś w nowym oknie, to nie wylogowuje mnie w nim, tylko cały czas jestem zalogowany w dwóch oknach. No ale mogę sie mylić, bo w zasdzie tego nie testowałem nigdy w taki sposób.

Cytat(brachu @ 2005-06-28 11:12:22)
@id4 to jednak nie dziala... chcialem zrobic tak samo zeby nie mozna sie bylo cofnac, ale kurcze jednak sie da.... a przynajmniej pod mozilla po kilkukrotnym kliknieciu wstecz zapyta sie czy przeslac dane jak dasz ok to jestes znowu zalogowany jako uzytkownik ktorego wlasnie wylogowales....


Może pokaż kod, który odpowiada za wylogowanie - będzie łatwiej.
crash
Sesja przejdzie, ale co to da skoro wylogowanie już ją skasowało? A co do tej metody to sprawdziłem. Działa, ale w np. Operze nowo otwarte okno jest traktowane jako popup i blokowane. Efekt został osiągnięty bo na nowo otwartym oknie nie ma aktywnego przycisku Wstecz smile.gif
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.