Znikanie zmiennej sesyjnej |
Znikanie zmiennej sesyjnej |
12.12.2012, 10:39:57
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?
Ten post edytował jwaldek 12.12.2012, 10:55:43 |
|
|
12.12.2012, 11:16:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 5 Dołączył: 6.11.2012 Ostrzeżenie: (0%) |
a sesja Ci nie ginie w jakimś pliku? Nie ma sytuacji, że zapomniałeś na początku pliku dodać session_start()
po co właściwie Ci
wystarczy sprawdziłeś na pliku sesji co się dokładnie dzieje? Znika TYLKO ta zmienna sesyjna? Ten post edytował jeremiash 12.12.2012, 11:29:44 |
|
|
12.12.2012, 11:43:40
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
|
|
|
12.12.2012, 11:55:34
Post
#4
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 24.12.2007 Ostrzeżenie: (0%) |
session_start() jest na początku skryptu - przykład powyżej to częśc większego systemu, jeden plik, który inicjalizuje podstawowe rzeczy i nie ma możliwości , żeby to nie bylo załadowane (wszystko działa poprzez index.php, prosty mvc )
innych zmiennych sesyjnych nie ma, poza tym trudno mi wychwycić ten monent/przypadek, gdy zmienna znika z sesji. w dalszej części skryptu jest formularz który wysła pewne dane i po prostu np raz na godzine po wysłaniu danych z tego formularza zmienna sesyjna znika - podejrzewam, że to serwer czyści wygasłe sesje ale nie wiem czemu ta moja sesja jest uznawana za wygasłą? Specjalnie podałem też ustawienia ini_set jakich używam, może jedno z nich jest niewłaściwe? Czy np ini_set("session.gc_maxlifetime",10800); ini_set("session.cookie_lifetime",10800); powoduje, że sesja jest usuwana od czasu pierwszego użycia sesji czy od czasu ostatniego zapisu do tablicy sesyjnej? Ten post edytował jwaldek 12.12.2012, 11:57:26 |
|
|
12.12.2012, 12:00:52
Post
#5
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 5 Dołączył: 6.11.2012 Ostrzeżenie: (0%) |
przecież ma na początku (tak myślę) , tylko niech wywali
Mortus, to nie kwastia nagłówków. ini_set("session.cookie_lifetime",10800); ini_set("session.gc_maxlifetime",10800); no to dokładnie zobacz do czego są te inicjalizacje Zawsze możesz zrobić to ręcznie, he he
tylko utwórz S_SESSION['Akcja'] przy tworzeniu sesji Ten post edytował jeremiash 12.12.2012, 12:02:54 |
|
|
12.12.2012, 12:12:09
Post
#6
|
|
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%) |
|
|
12.12.2012, 12:15:06
Post
#7
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 5 Dołączył: 6.11.2012 Ostrzeżenie: (0%) |
sprawdź proszę plik swojej sesji kiedy Ci go wywali. sess_ID ... zobacz czy wywala tylko tę zmienną sesyjną, czy czyści całą sesję (0KB) , czy ją usuwa... to nam powie czy faktycznie niszczy całą sesję (i potem tylko będziemy szukali powodu) , czy też wywala jedną zmienną sesyjną
Ten post edytował jeremiash 12.12.2012, 12:15:26 |
|
|
12.12.2012, 12:30:22
Post
#8
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 24.12.2007 Ostrzeżenie: (0%) |
Ok. będę to monitorował gdy tylko ponownie zauważę wystąpienie problemu.
|
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 13:04 |