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
dasko
post
Post #2





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 9.11.2004

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


Cytat
jeżeli używasz $_SESSION (lub $HTTP_SESSION_VARS), nie używaj session_register(), session_is_registered() i session_unregister().

Użycie $_SESSION nie wyklucza użycia tamtych, po prostu nie można dać:
  1. <?php
  2.  
  3. session_register($_SESSION['foo']);
  4.  
  5. ?>

wydaje mi się że o to tam chodzi.

Cytat
It took me some time to figure this out:
If you have register globals off, you probably use $_SESSION to acces you session vars. If you want clear a sessionvar inside the current script, but also in next pages, do this as follows:

session_unregister('varname');

Otherwise varname will keep returning either inside the script, or on the next pages.

unset($_SESSION['varname']) will only unset the session var on the current page.


Skoro gościu tak napisał, powinno działać...
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: 5.10.2025 - 04:11