Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Długość sesji
Forum PHP.pl > Forum > Przedszkole
bulimaxiu
Witam.

Jak określić długość sesji przez kod PHP, nie przez PHP.ini?
Próbowałem
  1. <?php
  2. ?>
, ale to nie utwierdziło sesji na 10 sekund, albo przez
  1. <?php
  2. ?>
na 1 minutę, ale za każdym razem gdy po tych czasach wywoływałem wyświetlenie wartości z tabeli sesji, to się wyświetlała zamiast się nie wyświetlić. Czy oprócz obejścia typu jeśli aktualny czas > określony wcześniej to session_destroy(), nie ma nic ciekawego?

Pozdrawiam.
Sebastian
ferrero2
może poprzez szukaj na tym forum

http://forum.php.pl/index.php?showtopic=10...p;hl=czas+sesji

Polecam
bulimaxiu
Niestetety set_ini nie zadziałało, pozostałe to metody o których wspomniałem jako "oprócz tego".

Pozdrawiam.
Sebastian
Lion_87
moze CIe zainteresuje to

http://www.egrafik.pl/manual-php-2006/ref.session.php
bulimaxiu
Czytałem ten artykuł już nieco wcześniej (google), tyle, że jakoś te komendy po prostu się nie sprawdzają, tzn. po odpowiednim zastosowaniu tych czasów sesji, sesje po przekroczeniu ustalonego czasu nadal istnieją i dane są przechowywane.
pyro
moze dzialaja tylko masz w przegladarce te ciastka dalej i pozostaja bez zmian, po kazdej zmianie konfiguracyjnej usuwaj phpsessid z przegladarki
Axexis
A ja bym to ugryzł z innej strony. Przy tworzeniu sesji bym dodał czas ($_SESSION['twoja_nazwa'] = time()winksmiley.jpg i sprawdzałbym przed wyświetlaniem czy określony czas już nie minął.
Czyli tworzenie sesji:
  1. <?php
  2. $_SESSION['czas'] = time();
  3. $_SESSION['sesja'] = 'zawartosc tabeli';
  4. ?>

I wyswietlanie zawartosci:
  1. <?php
  2. $czas_jaki_da_sie_ogladac = 60;
  3. if($_SESSION['czas'] > time() - $czas_jaki_da_sie_ogladac)
  4. echo $_SESSION['sesja'];
  5. else
  6. echo "Czas sesji uminal!";
  7. // i mozna dodac
  8. unset($_SESSION['sesja']);
  9. ?>
bulimaxiu
Dziękuję pyro, rzeczywiście po usunięciu z cookies znaku sesji zaczęło prawie dobrze chodzić session_set_cookie_params(10), ale nie na wszystkich kompach (jako Klientach) o dziwo.

Skrypt testowy:
  1. <?php
  2. #   session_cache_limiter('private');
  3. #   session_cache_expire(1);
  4.  
  5. if ($_SESSION[a] <> &#092;"a\") {
  6.         echo &#092;"nie znaleziono w sesji danej\";
  7.     $_SESSION[a] = &#092;"a\";
  8. }
  9.  
  10. echo $_SESSION[a];
  11.  
  12. # session_destroy();
  13. ?>


W IE6 działa na początku po wyczyszczeniu cache i cookies, ale na jeden raz, potem zachowuje się jakby sesji nie tracił, tylko ciągle w niej brnął. Alternatywą było session_destroy(), co wymusiło zamknięcie sesji.
FF przy odświeżaniu lub ponownym ładowaniu nie odlicza ponownie 5 sekund, tylko 5 sekund od momentu pierwszego załadowania skryptu; nie ważne że przez 5 sekund 10 razy odświeżam przez F5 lub Ctrl+F5, to liczy 5 sekund od pierwszego. Po tych 5 sekundach po otwarciu sesji powtórka z rozrywki. Po próbnej zmianie skryptu, żeby przydzielał sesjowemu "a" randa (zmiana danych tablcy) też nie odliczał od nowa tylko od pierwszego.
--------------
Czy ktoś orientuje się czy to tak ma działać?
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.