Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje a ciasteczka
Forum PHP.pl > Forum > PHP
piernik
Witam!

Ciekawi mnie sprawa zmiennych sesyjnych.
Ustawiłem zmienną session (nie ciasteczka). Z założenia powinna ona ginąć gdy okno przeglądarki się zamyka. Tak się nie zawsze dzieje. Dlaczego??

Problem dla mnie jest tym ciekawszy, że na moim komputerze przy zamknięciu okna sesja jest zamykana automatycznie, ale na komputerze kolegi, gdzie jest ten sam system i przeglądarka (świeżo instalowana i wiem że ma takie same ustawienia jak moja) już nie działa.

Dlaczego tak się dzieje??
hwao
Sessje swoje sid przechowuja w cookie/pasku.
Z tymi cookie jest roznie jedne przegladarki usuwaja je po zamnknieciu inne nadal je uwazaja za aktulane.
Wiecej znajdziesz na temat sesji po Polsku tu:
http://pl.php.net/session
piernik
czytałem to już... nie znalazłem sposobu jak wyjść z tego żeby po zamknięciu okna zabić sesję. próbowałem już wywołać sktypt javyScript, ale to działa również przy odświeżaniu (onunload).
piernik
Tak wiem... ta funkcja załatwiłaby problem, ale trzeba ją jakoś wywołać - ja chciałbym ją wywołać przy zamknięciu okna lub przejściu na inny adres.
wywołując ją z JavaScript mogę ją wywołać tylko przy onunload a to działa również przy preładowaniu.

Jak można wykryć zamknięcie przeglądarki??
hwao
Moze w js przy wyjscu ze strony wyslij ciacho z innym sid i to zalatwi spraew ( stare zostanie zapisane sid sie zmieni wiec dane z zalogowania tez przepadna )
piernik
próbowałem już w momencie przeładowania zapisać ciacho z takim samym id jak session_id, lecz najwyraźniej session nie ma nic wspólnego z ciachami, bo nic się nie działo....
hwao
  1. <?php
  2. echo $_COOKIE['PHPSESSID'];
  3. echo '<br/>';
  4. if( empty( $_SESSION['rand'] ) )
  5. {
  6.  $_SESSION['rand'] = rand();
  7. }
  8. echo $_SESSION['rand'];
  9. ?>

To wysietla Ci jakos liczbe jezeli trwa 1 sesja to ta liczba jest taka sam.
Jak wyslesz cookie z inna sid to wartosc sie zmienia ( czyli starra przepepada ).
Sprawdz czy u Ciebie to dziala i czy zmieni sie liczba jak zmienisz w cookie sid.
Btw:
Cookie powinno miec nazwe PHPSESSID
piernik
jak ustawiam ciastko z javascript nic się nie zmienia...

Ale tak żebyśmy się dobrze zrozumieli... Ja chcę by zabijać sesję podczas wyłączania przeglądarki, lub wpisania innego adresu.
mając session.start() i ustawiając zmienną w ten sposób $_SESSION['zmienna'] powinno to działać (tzn. tylko jak wyłączysz przeglądarkę), ale czasami nie działa - nie wiem czemu.

Pomyślałem więc żeby wywołać skrypt php funkcją javyScriptu onunload, ale to działa przy odświeżaniu - a tego nie chcę. Przecież mogę bez problemu wywołać tam session.destroy();
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.