Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znikanie zmiennej sesyjnej
jwaldek
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.12.2007

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


Mam pewien problem ze zmienną sesyjną - chodzi o token który trzymam sobie w sesji
Bywa, że znika w zupełnie przypadkowy sposób, po prostu nagle zmienna sesyjna znika mimo, że nigdzie w kodzie nie ma funkcji która by cokolwiek usuwała z sesji

Skrypt wygląda mniej więcej tak jak poniżej, teoretycznie raz wygenerowana zmienna o nazwie "token" nie powinna znikać przez cały czas działania skryptu a jednka znika (i zostaje jej przypisana nowa losowa wartośc co powoduje błędy) i to w sposób przypadkowy (1 raz na 20-50 przeładowań skryptu co kilka-kilkanaście minut). Co może być przyczyną tego problemu?

  1.  
  2. //tak ustawiam sobie konfigurację sesji
  3. ini_set("session.gc_divisor",100);
  4. ini_set("session.gc_probability",1);
  5. ini_set("session.cookie_path","/");
  6. ini_set("session.cookie_lifetime",10800);
  7. ini_set("session.gc_maxlifetime",10800);
  8. ini_set("session.cookie_httponly",1);
  9. ini_set("session.use_only_cookies",1);
  10. ini_set('session.use_trans_sid',0);
  11.  
  12. if(!isset($_SESSION)){
  13. }
  14.  
  15. //generuje unikalny token, powinien byc niezmienny podczas całej sesji użytkownika
  16. if(!empty($_SESSION['token'])){
  17. $token=$_SESSION['token'];
  18. } else {
  19. $token="wartość losowa";
  20. }
  21.  
  22. //zapisuje token w sesji
  23. $_SESSION['token']=$token;
  24.  
  25. //dalej znajduje się pewien warunek który sprawdza, czy token w sesji jest niezmieniony od pierwszego uruchomienia skryptu
  26.  


Ten post edytował jwaldek 12.12.2012, 10:55:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jwaldek
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.12.2007

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


Na razie wywalę ten warunek IF()

A session.gc_maxlifetime zwykle i tak ma domyślnie wartość 1440 więc podwyższając jego czas powinno skuktować tym, że w moim przypadku przedawnione zmienne sesyjne są kasowane po 3 godzinach, poza tym wykonując zapis do sesji przy każdym wykonaniu skryptu wydawało mi się, że nie ma możliwości aby zmienne sesyjne zostały wyczyszczone przez serwer (w moim przypadku dochodzi jeszcze prawdopodobieństwo czyszczenia na poziomie 1%)
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 19:15