Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Czas trwania sesji
radabus
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 2
Dołączył: 17.08.2009

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


Witam

Szukałem na forum dość intensywnie, ale nie znalazłem takiego zagadnienia. Próbuję ustawić czas trwania sesji w taki sposób:

  1. ini_set('session.cookie_lifetime', XXXX);

Problem objawia się w ten sposób, że cookie jest ustawiane z danym czasem, a przy odświeżaniu strony czy też przechodzeniu na inne strony ten czas nie jest aktualizowany. Przykładowo ustawiam sobie na 20 sekund. Wywołuję stronę i kontroluję sesję za pomocą wyświetlenia session_id();

Przy pierwszym wywołaniu - pojawia się session_id danej sesji. Przy próbie odświeżania - zmienia się po 20 sekundach. Przy próbie przejścia na inną stronę po 10 sekundach, nie ustawia nowego czasu trwania sesji, tylko nadal leci "stary" licznik i po kolejnych 10 sekundach sesja wygasa, tworzony jest nowy identyfikator sesji.

W jaki sposób temu zapobiec? Jak ustawić, żeby przy każdym odświeżeniu strony czy przejściu na inną czas ważności sesji/cookie z session_id był ustawiany ponownie na ustaloną wartość?

Hm, jeśli mógłbym prosić o pomoc, odesłanie chociaż w przybliżeniu do konkretnej części manuala... Byłoby super, bo niestety sam nie potrafię sobie poradzić z tym problemem.

Przestawienie session.gc_maxlifetime = 1440 na inną wartość (w php.ini na 20 sekund przykładowo) i podmiana session.gc_probability = 100 - nic nie daje, sesja trwa i dłużej niż 20 sekund.

Prosiłbym bardzo o wskazówki, jak wykonać to, żeby sesja trwała określony czas, a za każdym odświeżeniem/wywołaniem strony ten czas był wydłużany. Przy założeniu, że korzystam z cookies do przetrzymywania session_id.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CyberDuck_
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

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


Nie.
session_start(); jedynie fizycznie na serwerze
otwiera albo odczytuje specjalny folder potrzebny do
przechowywania zmiennych tam zawartych. Dokladnie
to sa pliki o nazwach zmiennych i zawartoscia tych
zmiennych, dla kazdego uzytkownika przebywajacego na stronie.
Zapisywac i odczytywac zmienne z sesji mozna w
dowolnym momencie strony $_SESSION['nazwa'] = 'cos'; ,
echo $_SESSION['nazwa']; .
Nic nie jest przesylane wraz z ta instrukcja.

Z ciastkami jest inaczej. Zmienne z ciastek sa przesylane
wraz z naglowkiem strony i dlatego jest wymog zeby je zapisac
lub odczytac przed wyslaniem czegokolwiek na stronie.
Jak juz wykonasz chociaz jedno echo lub jakis inny rozkaz
wyswietlajacy cos na stronie to juz po zabawie. Serwer
zglosi natychmiast w ostatnim wypadku odrazu blad cachelimiter.
Zywotnosc ciastek zapisujesz wraz ze zmienna w setcookie i tak
na prawde to przegladarka decyduje kiedy ja skasowac lub pozostawic.
Jesli dodasz do ciastka 20 sekund to za dwadziescia sekund po wejsciu
na dowolna strone komputer przejdrzy katalog z ciastkami i jesli ktorych
czas jest przedawniony to zmienna zostaje skasowana.
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: 26.12.2025 - 16:23