Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: gubiące się zmienne sesyjne
Forum PHP.pl > Forum > PHP
ktuvok
Mam skrypt logowania, który zapisuje informacje o użytkowniku do sesji. Informacje te są odczytywane przy otwarciu któregokolwiek ekranu, a jeśli okazuje się, że ich nie ma, to juzer jest wywalany do ekranu logowania.

Ale... Czas życia sesji jest ograniczony. Aktywni juzerzy są wywalani i tak mniej więcej po 20 minutach bezczynności. Tymczasem są formularze, które wymagają dłuższego wypełniania. Co wtedy?

Próbowałem już wpisać:
  1. <?php
  2.  
  3. ini_set(&#092;"session.cookie_lifetime\", 3600);
  4. ini_set(&#092;"session.gc_maxlifetime\", 3600);
  5.  
  6. ?>

co teoretycznie powinno dać juzerowi godzinę na nieprzerwaną pracę z systemem, ale niestety te ustawienia są ignorowane - juzerzy i tak są wylogowywani.

Poza tym mam problem taki - gdzie powinienem to wpisać? Przed każdym wywołaniem session_start() czy tylko przed wywołaniem pierwszego session_start() (w skrypcie logowania)?

Korzystam z serwera wirtualnego i nie mam dostępu do php.ini.

Jestem już po lekturze archiwów grup dyskusyjnych, ale rozwiązania nie znalazłem. Implementacja własnego mechanizmu sesji z różnych przyczyn nie wchodzi w grę. Jakieś sugestie?

Pozdrawiam,
K
donpablo
1. session_start()
2. session_register('nazwa_zmiennej')
3. do linku doloczyc id sesji
4. po za tym nie spotkalem sie z serwerem ktory sam od siebie niszczy sesje, chyba ze uzywasz serwera z ukrainy
jono
@donpablo: HAHA. Dobre smile.gif KAŻDY serwer niszczy dane sesyjne. Inaczej zapchałby się cały dysk...
donpablo
owszem jono, ale nie po kilku minutach bezczynnosci, a jesli by mi sie takie konto dostalo to zaraz bym podarl umowe i do kosza wypier.........!
ktuvok
20 minut to nie kilka... Niestety, czyszczenie plików sesji z serwera jest czynnością normalną. Nie chcę ich przechowywać dłużej niż 60 minut, ale jak uzyskać pewność, że ten czas nie będzie dłuższy?

Dołączanie IDSesji do linku ma sens tylko wtedy, gdy u klienta nie działają cookies, prawda?

Pozdrawiam,
K
jono
Co do SID w linku - php sam dodaje go do wszystkich linków, jeżeli nie działają COOKIES..

hmmm.. a może... AJAX?? Niech funkcja połączona z AJAX-em odświeża sesję np. co 10 minut. Wtedy jak user skończy, to sesja wygaśnie po tych 20 minutach..
ktuvok
Nie slyszałem zbyt wiele o AJAX, może jakiś link podpowiedz?

Mogę napisać własną funkcję javascript, która odświeży formularz co pewien czas, ale nie w tym rzecz... Nie chcę, żeby przeglądarka sama odświeżała stronę kiedy juzer wpisuje dane, bo moze go to lekko wkurzyć... Nie mówiąc już o konieczności każdorazowego sprawdzenia danych wysłanych na serwer, a łatwo przewidzieć, że dane będące w trakcie wpisywania zapewne nie będą odpowiadać wzorcom...

Czy nie ma na to sposobu opartego wyłącznie na php?

Pozdrawiam,
K
jono
AJAX

user nie wie, że odświeża się cokolwiek. Ty za pomocą JS wydajesz polecenia do funkcji php, a nie musisz wyświetlać żadnego wyniku...
ktuvok
Dzięki...

A nie ma "bezAJAXowego" sposobu na rozwiązanie mojego problemu? Trochę mi się nie chce (z różnych przyczyn) pakować w nową technologię...

Pozdrawiam,
K
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.