Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Garbage Collector i sesje
Pucy
post 13.12.2006, 22:37:53
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

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


Wie ktos jak ten mechanizm dziala dokladnie?

  1. <?php
  2. ini_set('session.gc_probability',1);
  3.  ini_set('session.gc_divisor',1);
  4. ?>


u mnie na webservie nie wnosi to zadnej roznicy do dzialania skruptu, gdzie sesje ustawiam raz... a pozneij wykonuje 10 kolejnych krokow korzystajac z ustawionej zmiennej. Dlaczego tak sie dzieje? Czy wniesione prawdopodobienstwo nie powinno usunac tych danych? z 1 akcji?

A ogolnie chodzi o to, ze pojawil sie pewnien losowy blad, raz na kilkadziesiat wywlan skryptu w polowie tych 10 krokow, sesja znika, za czym przemawialby mechanizm gc.

Czy moglby mi ktos rozjasnic dzialanie smieciarza? I przyblizyc mi odpowiedz na pytanie: "dlaczego on nie usunal danych jak dalem mu 100% prawdopodobienstwo?"


--------------------
TESTWIEDZY.PL - Przetestuj swoją wiedzę...

Nie ma rzeczy niemożliwych. Niemożliwe wymaga jedynie więcej czasu...
Pracujemy na Ciebie! - MINDFLOW.PL
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
heaven
post 15.12.2006, 14:20:10
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


ten mechanizm uruchamiac sie powinien zawsze (przy twoim ustawieniu) ale usuwa tylko przeterminowane dane, czyli sesje ktore juz wygasly bo uplynal limit czasu (session.gc_maxlifetime).

Ten post edytował heaven 15.12.2006, 14:25:27
Go to the top of the page
+Quote Post
Pucy
post 15.12.2006, 17:33:28
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

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


A jaka sesja ulega przedawnieniu?

Jezeli dam np. $_SESSION['x'] = 1; i czytam z niej przez kolejnych 55 akcji nie zmieniajac jej, po czasie session.gc_maxlifetime taka dana jest przedawniana? Dobrze rozumiem?


--------------------
TESTWIEDZY.PL - Przetestuj swoją wiedzę...

Nie ma rzeczy niemożliwych. Niemożliwe wymaga jedynie więcej czasu...
Pracujemy na Ciebie! - MINDFLOW.PL
Go to the top of the page
+Quote Post
heaven
post 15.12.2006, 18:47:00
Post #4





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


przedawnieniu moze ulec tylko cala sesja jesli nie byla uzywana przez session.gc_maxlifetime. Czyli jesli w sesji zapisujesz $_SESSION['x'] i $_SESSION['y']. Nastepnie korzystasz tylko z $_SESSION['x'] tak ze odstepy nie przekraczaja session.gc_maxlifetime to $_SESSION['y'] tez nie wygasnie. albo wygasa cala sesja albo zaden jej skladnik



ponoc session.gc_maxlifetime = 1440s = 24m



jest jeszcze session.lifetime - czas waznosci cookies wyslanego do przegladarki ktory trzyma numer danej sesji. defaultowo ustawiony na 0 co oznacza ze "do zamkniecia przegladarki"


utrata sesji wystepuje jeszcze przypadku gdy ktos w przegladarce wpisze strone www.strona.pl i pracujac na niej kod spowoduje przekierowanie na strone strona.pl. wtedy cookies widzi to jako inna strone i nie wysle numeru sessji a co za tym idzie utworzy sie nowa

Ten post edytował heaven 15.12.2006, 18:55:16
Go to the top of the page
+Quote Post
Pucy
post 15.12.2006, 18:58:18
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

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


Ahm, czyli czytanie jakeijkowleik danej w sesji, nie pozwoli na jej usuniecie... no to kurde;/

Hm a przy okazji spytam, czy mozna zatrzymac dana sesje po wylaczeniu i wlaczeniu strony? Tzn , pewne tak ale jakim mechanizmem? Chodzi mi o cos takiego jak na php.net jest jak sie wpisuje funkcje do wyszukiwania.


--------------------
TESTWIEDZY.PL - Przetestuj swoją wiedzę...

Nie ma rzeczy niemożliwych. Niemożliwe wymaga jedynie więcej czasu...
Pracujemy na Ciebie! - MINDFLOW.PL
Go to the top of the page
+Quote Post
heaven
post 15.12.2006, 19:29:32
Post #6





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


No wydaje mi sie że jesli chcesz zachowac całą sesje mo musisz odpowiednio ustawic session.lifetime ale ja nigdy tego nie robilem - zachowaja sie wszystkie zminne danej sessji. jesli chcesz przechowac tylko jedna zmienna to chyba lepiej na cookies'ach to zrobic.
Go to the top of the page
+Quote Post
Pucy
post 16.12.2006, 22:25:31
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

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


Hm a czy mozliwe jest by losowo pojawiajace sie bledy (nawet nie odnoszace sie do sesji) byly w jakis sposob wina serwera? Co prawda blad pojawia sie gdy uzywam sesji, ale jak widac, ustawienia i sam mechanizm nie spowoduje jej utraty... A jednak raz na nie wiem eh.. moze 30 operacji skrypt dziala blednie... dlaczego tak sie moze dziac? Takie cos strasznie mi utrudnia prace, jako ze nie moge dokladnie zdiagnozowac problemu, bo nie wiem keidy on sie wydarzy.. ;/


--------------------
TESTWIEDZY.PL - Przetestuj swoją wiedzę...

Nie ma rzeczy niemożliwych. Niemożliwe wymaga jedynie więcej czasu...
Pracujemy na Ciebie! - MINDFLOW.PL
Go to the top of the page
+Quote Post
heaven
post 17.12.2006, 11:00:50
Post #8





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


Trudno mi cos sensownego wykombinować :/. Ciekaw jestem gdzie przechowujesz pliki sesji? moze w katalogu tmp systemowym (tak chyba jest defaultowo)(pliki maja prawdopodobnie taka nazwę "sess_e56744ea542b1190a746904ab47cf8d2" czyli sess_(plus identyfikator sesji))? Moze system co jakis czas wywala te pliki (chcociaz jak dla mnie powinien usunac dopiero po reboot'cie). Za duzo "może". Mysle zebys przerobil sobie sesje aby byly zapisywane w bazie. Wysłałem Ci ksiazkę w której jest opisane krok po kroku jak to zrobic. W kodzie nie bedziesz musial nic zmieniac. Dopiszesz tylko pare linijek i utworzysz dodatkowa tabele w bazie. Jeśli na cos jeszcze wpadne do dam znac na PW. pozdrawiam...
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:35