Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]session.gc_maxlifetime nie działa, Jak ustawić czas życia sesji
gargamel
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

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


Od początku: Problem zaczął się gdy okazało się że użytkownicy mojej stronki tracą sesję. Szczególnie mnie to nie dziwiło, gdyż domyślny czas życia sesji dla serwera wynosi 24 min.
Postanowiłem więc to sprawdzić.
Przygotowałem 2 pliki:
Pierwszy:
  1. <?php
  2. $_SESSION['test'] = 'sesja jest aktywna od ' . date("H:i:s");
  3. echo "<a href='sesji_test_2.php'>Klik</a>";
  4. ?>

oraz drugi:
  1. <?php
  2. echo $_SESSION['test'];
  3. ?>


Odpaliłem pierwszy plik, który zapisuje do sesji jakieś dane, po czym przechodzę do drugiego pliku, który te dane wyświetla.
Czekam pół godziny i odświeżam owy drugi plik, aby zobaczyć czy sesja wygasła... jednakże okazuje się że zmienna $_SESSION['test'] nadal wyświetla to co zostało jej przypisane w pierwszym pliku.

Coś jest nie tak. Część użytkowników serwisu traci sesję, ja natomiast nie. Wyświetlam sobie konfigurację serwera przez phpinfo() i tam mam tak jak się spodziewałem session.gc_maxlifetime ustawione na 1440, a mimo to sesja mi nie wygasa po owych 24 minutach...

Ostatecznie zmodyfikowałem drugi plik do postaci:
  1. <?php
  2. ini_set('session.gc_maxlifetime', 3);
  3. echo $_SESSION['test'];
  4. ?>

aby sprawdzić, czy po przejściu na niego, odczekaniu powyżej ustawionych 3s i odświeżeniu, sesja wygaśnie. Jednak znowu się tak nie dzieje, mimo że php_info pokazuję już session.gc_maxlifetime ustawione faktycznie na 3s.

Będę wdzięczny za jakiekolwiek wskazówki co może być nie tak, bo pomysły już mi się skończyły (IMG:style_emoticons/default/smile.gif)

Edit:

Dodam jeszcze tylko, że sam też jestem często automatycznie wylogowywany z panelu zarządzania stronką. Trudno tu określić jakiś związek z czasem nieaktywności. Czasem panel jest otwarty cały dzień ( nie dotykam komputera ) i wieczorem nadal jestem zalogowany, a kiedy indziej po pewnym czasie sesja wygasa.

-odświeżam

-odświeżam

Ten post edytował gargamel 30.08.2011, 11:13:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jest to po prostu spamowanie listy forum poprzez ciągłe sztuczne zawyżanie jego pozycji.

Co do twojej odpowiedzi to przeczytaj http://pl2.php.net/manual/en/session.confi....gc-maxlifetime
Cytat
Garbage collection may occur during session start (depending on session.gc_probability and session.gc_divisor).

Czyli szansa na to, że starsze sesje zostaną usunięte zależy od powyższych ustawień gc_probability oraz gc_divisor (przelicz sobie szansę trafienia na GC).
Ustaw po prostu DŁUŻSZY czas życia danych sesyjnych w GC i po problemie.
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: 3.10.2025 - 19:57