Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 2 Dołączył: 17.08.2009 Ostrzeżenie: (0%)
|
Witam
Szukałem na forum dość intensywnie, ale nie znalazłem takiego zagadnienia. Próbuję ustawić czas trwania sesji w taki sposób: Problem objawia się w ten sposób, że cookie jest ustawiane z danym czasem, a przy odświeżaniu strony czy też przechodzeniu na inne strony ten czas nie jest aktualizowany. Przykładowo ustawiam sobie na 20 sekund. Wywołuję stronę i kontroluję sesję za pomocą wyświetlenia session_id(); Przy pierwszym wywołaniu - pojawia się session_id danej sesji. Przy próbie odświeżania - zmienia się po 20 sekundach. Przy próbie przejścia na inną stronę po 10 sekundach, nie ustawia nowego czasu trwania sesji, tylko nadal leci "stary" licznik i po kolejnych 10 sekundach sesja wygasa, tworzony jest nowy identyfikator sesji. W jaki sposób temu zapobiec? Jak ustawić, żeby przy każdym odświeżeniu strony czy przejściu na inną czas ważności sesji/cookie z session_id był ustawiany ponownie na ustaloną wartość? Hm, jeśli mógłbym prosić o pomoc, odesłanie chociaż w przybliżeniu do konkretnej części manuala... Byłoby super, bo niestety sam nie potrafię sobie poradzić z tym problemem. Przestawienie session.gc_maxlifetime = 1440 na inną wartość (w php.ini na 20 sekund przykładowo) i podmiana session.gc_probability = 100 - nic nie daje, sesja trwa i dłużej niż 20 sekund. Prosiłbym bardzo o wskazówki, jak wykonać to, żeby sesja trwała określony czas, a za każdym odświeżeniem/wywołaniem strony ten czas był wydłużany. Przy założeniu, że korzystam z cookies do przetrzymywania session_id. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%)
|
Nie.
session_start(); jedynie fizycznie na serwerze otwiera albo odczytuje specjalny folder potrzebny do przechowywania zmiennych tam zawartych. Dokladnie to sa pliki o nazwach zmiennych i zawartoscia tych zmiennych, dla kazdego uzytkownika przebywajacego na stronie. Zapisywac i odczytywac zmienne z sesji mozna w dowolnym momencie strony $_SESSION['nazwa'] = 'cos'; , echo $_SESSION['nazwa']; . Nic nie jest przesylane wraz z ta instrukcja. Z ciastkami jest inaczej. Zmienne z ciastek sa przesylane wraz z naglowkiem strony i dlatego jest wymog zeby je zapisac lub odczytac przed wyslaniem czegokolwiek na stronie. Jak juz wykonasz chociaz jedno echo lub jakis inny rozkaz wyswietlajacy cos na stronie to juz po zabawie. Serwer zglosi natychmiast w ostatnim wypadku odrazu blad cachelimiter. Zywotnosc ciastek zapisujesz wraz ze zmienna w setcookie i tak na prawde to przegladarka decyduje kiedy ja skasowac lub pozostawic. Jesli dodasz do ciastka 20 sekund to za dwadziescia sekund po wejsciu na dowolna strone komputer przejdrzy katalog z ciastkami i jesli ktorych czas jest przedawniony to zmienna zostaje skasowana. |
|
|
|
radabus [PHP]Czas trwania sesji 18.08.2009, 13:07:16
erix No to dajesz wtedy setcookie z nazwą sesji + ident... 18.08.2009, 13:21:54
radabus Pytanie tylko mi się nasuwa jedno: jeśli używam se... 18.08.2009, 13:36:35
CyberDuck_ Przedewszystkim mylisz sesje z ciastkami.
To sa dw... 18.08.2009, 13:39:30
radabus Trochę pogmatwałem. Chodziło mi o to, że session_s... 18.08.2009, 13:50:30
radabus Przepraszam, ale trochę namieszałeś. Z tego, co ja... 18.08.2009, 14:58:24
erix CytatNie.
session_start(); jedynie fizycznie na se... 18.08.2009, 15:19:14
radabus Dzięki erix za nakierowanie, nie przyszło mi do gł... 18.08.2009, 16:47:41
CyberDuck_ No racja ... napisalem tak dla uproszczenia zeby b... 18.08.2009, 18:48:16 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 16:23 |