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





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
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.

Najpierw poczytaj, potem się wypowiadaj. session_start wysyła też ciasteczko sesyjne, jeśli nie jest ono obecne, ale go nie przedłuża. Kolejny nabijacz postów tylko dla testu?

Cytat
Tak przynajmniej zrozumiałem, że należy to zrobić. Ale problemu nie rozwiązałem w ten sposób - nadal przy odświeżaniu strony czas życia ciasteczka nie jest przedłużany o kolejne 20 sekund, tylko wygasa... I potem ustawiana jest nowa sesja.

Ciekawe, skąd tę zmienną bierzesz...

Czasem wystarczy tylko komentarze do funkcji przejrzeć, nie rozumiem dlaczego nikt tego nie robi...

http://pl2.php.net/manual/en/function.sess...arams.php#78930
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: 27.12.2025 - 14:57