Jest sobie 100 userów bazy. Dla 3 mam pilną potrzebę ustalenia, że sesja ma
trwać dłużej niż standardowo. I za cholerę nie moge tego zrobić. Jak nie
urok to sraczka.
do ustawienia są
session.gc_probability
session.gc_divisor
session.gc_maxlifetime
session_set_cookie_params
session_cache_expire
session_set_save_handler
co za łoś to projektował. Wszystkie zmienne mają wpływ na czas
trwania/przechowywania sesji. I jak php chce to apacz nie chce bo garbage
collector się go nie słucha. Albo robię coś nie tak.
Możecie mi podać prosty przykład skryptu w którym sesja będzie wygasać po 5
sek. ?
a masz oddzielne katalogi na pliki sesji userów?
--
Pozdrawiam
Lemat
easyISP jest spam friendly - utrzymuje notorycznego spamera polandexport /
ipeik / netex-sterling, pomóżcie ich przekonać nie wykupując u nich
hostingu.
Nie. Przecież każda sesja to oddzielny plik. Po cholerę robić folder w
którym będzie tylko jeden pliczek?
Jeśli to wymagane to jakiś deblizm.
Jeśli ten debilizm jest prawdą to czy można zmusić php do zakładania takich
folderów?
Jeśli nie da rady tego zrobić z poziomu skryptu to po cholerę w PHP
implementowano obsługę czasu trwania sesji skoro nie można z tego normalnie
korzystać?
co rozumiesz pod pojęciem "user"?
bo ja rozumiem usera na serwerze a nie usera z przeglądarką
każdy user na serwerze powinien mieć oddzielny katalog na sesje/pliki
tymczasowe i jego strony www podczas wizyty wielu userów z przeglądarkami
będą generowały wiele plików sesji w tym katalogu.
Użytkownik serwisu www
>
>> co rozumiesz pod pojęciem "user"?
>
> Użytkownik serwisu www
A skąd PHP ma wiedzieć, że dany plik sesji ma być trzymany dłużej?
Tak się nie da. W takim przypadku PHP po stronie serwera ustawia się na
najdłuższą możliwą wartość a w obsłudze sesji po stronie skryptów PHP
sprawdza się czas sesji i odcina userów z przekroczonym czasem.
I cudownie. To teraz pokaż mi skrypt który wygasi sesję po 5sek.
Oczywiście za pomocą mechanizmów wbudowanych w php a nie twojej funkcji
która mierzy czas od startu sesji który przechowywany jest w sesji i w
zależności od wyniku ją niszczy.
Możliwe czy jednak ktoś coś spieprzył?
Oczywiście zakładam że to wina mojego ograniczenia umysłowego.
powtarzam pytanie:
skąd PHP ma wiedzieć, że jedna sesja ma wygasnąć po 5s a druga po 20
minutach? Czy PHP ma wbudowaną jakąś szklaną kulę?
Wszelakie niestandardowe zachowania trzeba sobie obsłużyć samemu.
Jakie niestandardowe? Przecież w php są wbudowane funkcje które zarządzają
sesjami i czasem ich trwania.
Tyle że nie mogę ich zmusić do współpracy.
Odpalam skrypt ludek się loguje. Jego user_id i ip kompa ląduje do sesji.
Dzięki temu że te dane się tam znajdują stwierdzam, że ludek jest
zalogowany.
Po domyślnych 24min nieaktywności sesja wygaśnie i zmienna user_id i user_ip
przestaje być dostępna. Ludek automatycznie zostaje wylogowany a przy
odświeżeniu strony sesja i jej identyfikator zostają zniszczone.
Czy mając do dyspozycji i ustawiając gdzieś w skrypcie poniższe
zmienne/funkcje można ten czas zmienić czy nie?
session.gc_maxlifetime
session_set_cookie_params
session_cache_expire
Ale w jaki sposób PHP ma stwierdzić, że jedna sesja ma trwać 24 minuty a
druga 30 minut?
Na jakiej podstawie?
ini_set('session.cookie_lifetime', 0);
ini_set('session.gc_maxlifetime', 1440);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_probability', 1)
Spróbuj...
Pozdr
Exe Very Cute
Na podstawie danych usera z bazy.
Jeśli ludek się zaloguje to sesja ma być zainicjowana i ustawiana jest na
czas przypisany ludkowi w aplikacji www.
Tak samo jak można ustawić cookie na dowolny czas tak chciałbym zrobić z
sesją.
Spróbuję, dzięki.