Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odśmiecanie plików po nieaktywnej sesji
Forum PHP.pl > Forum > PHP
phaphiq
Piszę aktualnie obsługę koszyka sklepu internetowego. Zrobiłem klasę "cart" i tam trzymam wszystkie operacje na koszyku. Każda sesja wiąże się u mnie z utworzeniem pliku w katalogu tmp o nazwie takiej samej jak nazwa sesji. Mniejsza o to, czy to rozsądne i optymalne rozwiązanie :-)

Wszystko zapisuje się fajnie, mogę dodawać kolejne produkty do koszyka i moja łamigłówka zaczyna się przy kończeniu pracy z sesją, gdy użytkownik opuszcza mój sklep i przez te 1440 sekund nie pobiera nic z IP mojego serwera. Dowiedziałem się, że jak ktoś znowu odpali session_start() to jest szansa na odpalenie garbage collectora, który usuwa wszystkie nieaktywne sesje.

Chciałbym, żeby przy tym usunął on też plik (z zawartością koszyka) o takiej też samej nazwie jaka była sesja. Proste unlink() dorzucić.

Wyczytałem istnienie takiej funkcji jak session_set_save_handler gdzie mogę wrzucić swój automat gc ale to chyba zbyt duże narzędzie jak dla mnie :-) Tzn na podstawie manuala wnioskuję, że wcześniejsze 5 z 6 funkcji przekazywanych tą metodą nie są domniemane i nie mogę ich pominąć (wyprzecinkować) dodając jedynie swój gc callback.

Moje pytanie zatem brzmi: czy można jakoś prościej "powiedzieć" systemowi gc co mógłby jeszcze dla mnie zrobić usuwając nieaktywne sesje?
Dumdas
Na koszyk internetowy nadają się najlepiej ciastka. Sam określasz ich termin ważności.
Co do sesji:
session_destroy() - cała sesja zostaje usunięta. O to chodziło?
phaphiq
Cytat(Dumdas @ 14.10.2009, 13:12:55 ) *
Na koszyk internetowy nadają się najlepiej ciastka. Sam określasz ich termin ważności.
Co do sesji:
session_destroy() - cała sesja zostaje usunięta. O to chodziło?

A sesje to nie ciastka? Nie chodziło o session_destroy(). Chodziło o usunięcie jakiegoś pliku a nie sesji.
Dumdas
sesje bazują na ciastkach, ale to trochę co innego. Ciastka są po prostu prostsze. Co do problemu - niestety nie wiem w takim razie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.