Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHPSESSID i ciastko z inną nazwą, Nieprawidłowa ich aktualizacja.
Walian
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


Postanowiłem sprawdzić działanie moich sesji, bo odniosłem wrażenie, że PHP nie odświeża czasu "życia" sesji gdy ktoś wędruje po stronie.

Czas życia moich sesji: 15 min (później zwiększę bo to trochę mało wg mnie).
Wartość tę przechowuje stała: USER_SESSION_MAX_INACTIVE_LIFETIME.

Sprawdziłem ciasteczka i zdziwiło mnie kilka faktów:

1. Istnienie PHPSESSID, skoro używam ciastka o nazwie USER_SESSION.
2. PHPSESSID po zalogowaniu zostaje utworzone i nie jest nigdy więcej aktualizowane.
3. PHPSESSID ma czas wygaśnięcia równy + 15 min od zalogowania (nie od odświeżenia strony!).
4. USER_SESSION ma prawidłowy czas wygaśnięcia równy + 15 min od odświeżenia strony.

Poprzez "odświeżenie strony" mam na myśli również wędrowanie po innych, które używają sesji.
Bo przecież z każdą aktywnością użytkownika powinno się ustawiać czas sesji ponownie do przodu smile.gif

Funkcje:
  1. session_set_cookie_params(USER_SESSION_MAX_INACTIVE_LIFETIME + 600, '/');
  2. ini_set("session.cookie_lifetime", USER_SESSION_MAX_INACTIVE_LIFETIME + 600);


Nie mają wpływu na PHPSESSID - jedynie na USER_SESSION.
Konkretnie - w tym wypadku PHPSESSID będzie miało czas życia:
USER_SESSION_MAX_INACTIVE_LIFETIME
a nie:
USER_SESSION_MAX_INACTIVE_LIFETIME + 600.
Jeśli ciastko PHPSESSID wygaśnie - sesja również - a przecież powinno brać pod uwagę tylko ciastko USER_SESSION.

Jeśli ustawię czas życia ciastka na 0 poprzez session.cookie_lifetime to działa to tylko na ciastko USER_SESSION!

Jeśli natomiast zrezygnowałem z własnego ciastka poprzez:
  1. session_name('USER_SESSION');

Czyli zakomentowałem tę linię, to "everything is fine"...

Ustawienia:
  1. ini_set("session.gc_maxlifetime", USER_SESSION_MAX_INACTIVE_LIFETIME);
  2. ini_set("session.auto_start", 0);
  3. ini_set("session.use_cookies", 1);
  4. ini_set("session.use_only_cookies", 1);
  5. ini_set("session.use_trans_sid", 0);
  6. ini_set("session.cookie_httponly", 1);


Z początku nie używałem session_set_cookie_params() ale teraz próbowałem jakoś wpłynąć na to PHPSESSID, ale coś się nie udaje...

Ten post edytował Walian 28.02.2010, 15:47:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 00:03