Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> unset() działa tylko 1 krok wstecz
czezz
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 24.07.2003

Ostrzeżenie: (10%)
X----


ustawiłem sobie przy wylogowywaniu z formularza:

  1. <?
  2. unset($_SESSION['login'];
  3. header(&#092;"location: log_again.php\");
  4. ?>


dzięki temu zmienna przekazująca nazwę loginu zostanie zniszczona a następnie zostane przekierowany do formularza logowania.
I tak:
gdy wykona się powyższy kod i kliknę w przycisk przeglądarki "WSTECZ"
zobaczę komunikat:
Kod
Uwaga: Strona wygasła Żądana strona została utworzona przy wykorzystaniu informacji przesłanych w formularzu. Strona nie jest dostępna. Ze względów bezpieczeństwa, na wszelki wypadek, program Internet Explorer nie przesyła ponownie informacji.

Aby ponownie przesłać informacje i ponownie oglądać stronę sieci Web, kliknij przycisk Odśwież.


...i było by SUPER, gdyby nie fakt, że ponowne kliknięcie "WSTECZ" pokazuje stronę gdzie zmienna $_SESSION['login'] pokazuje się z wartością, którą chciałem zniszczyć/usunąć/odrejestrować.

Czy nie ma jakiegoś polecenia, które całkowicie wyczyści wartość zmiennej sesyjnej? W manualu jest napisane, że wystarczy wpisać unset('zmienna').
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adif
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.06.2005

Ostrzeżenie: (0%)
-----


Nie tak dawno sam miałem z tym problem i stwierdziłem że to raczej jest problem po stronie przeglądarki niż samego php, która to uparczywie próbuje wysyłać zmienne z formularza i tym samym ponownie zalogować użytkownika.

Znalazłem na to małe rozwiązanie, w pewnym sensie oszukuję przeglądarkę - u mnie działa - więc spróbuj tego:

zaraz po zalogowaniu jak tworzysz sobie zmienna sesji:

ja to robie bez uzycia session_register, a mianowicie:
  1. <?php
  2.  
  3.  $login = $_POST['login'];
  4.  
  5.  $_SESSION['uzytkownik'] = $login;
  6.  
  7. ?>



przekierowujesz użytkownika do nowej lokalizacji przy pomocy skryptu:
  1. <?php
  2.  
  3. echo '<script>location.replace (\"index.php\")</SCRIPT>';
  4.  
  5. ?>

Wówczas po wylogowaniu:

  1. <?php
  2.  
  3. unset($_SESSION['uzytkownik']);
  4.  
  5. ?>


jak dajesz w przeglądarce wstecz nagle okazuje się że już nie chce wysyłać ponownie danych i jesteś poprawnie wylogowany.

Szczerze mówiąc jestem ciekawy czy zadziała to u Ciebie bo zdziwiło mnie kiedy zadziałało u mnie

pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 11:08