Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sesje i czas trwania!
Forum PHP.pl > Forum > Przedszkole
gylopl
Witam!
Mam maly problemik:) otoz nie wiem za bardzo co zrobic zeby sesja trwala 10min:(

jak mam stronke

  1. <?php
  2. //kod strony blebleble
  3. ?>


to przed session_start(); mam walnac skrypt? tylko jaki? chodzi o $_SESSION['expire']= time() + 60; questionmark.gif

jak mam taki skrypt to sesja i tak trwa i trwa:( a ktos mi mowil ze mam tak zrobic
  1. <?php
  2. $_SESSION['expire']= time() + 60;
  3.  //kod strony blebleble
  4.  ?>
krzyszbi
może pomorze manual

Cytat(gylopl @ 25.09.2008, 13:04:07 ) *
  1. <?php
  2. $_SESSION['expire']= time() + 60;
  3.  //kod strony blebleble
  4.  ?>


używasz zmiennej $_SESSION zanim jest dostępna więc na pewno nie zadziała
gylopl
Cytat
proste: Robisz w sesji zmienna z czasem ostatniej aktywnosci na stronie. Przy kazdej aktywnosci uruchamiazs skrypt ktory bedzie sprawdzal czy minelo 5 minut od ostatniej aktywnosci i tutaj masz 2 warianty:

1 jak minelo to wylogowujesz usera i niszczysz zmienne sesyjne
2 jak nie minelo to aktualizujesz czas i powtarzasz kroki...


taka odpowiedz dostalem od pewnego uzytkownika.... jak mam zrobic ta zmienna sesji z czasem ostatniej aktywnoscni?
(czytalem manuala, ale nie bardzo rozumiem sesje sciana.gif )
ShadowD
Nie wiem czy to najlepsze wyjście ale:
*To co teraz napiszę powtarzasz na każdej stronie
1. Sprawdzasz czy istnieje zmienna $_session['czas']
1a. Jeśli nie to tworzysz ją i zapisujesz do niej aktualny czas...
1b. jeśli tak to:
2. Sprawdzasz czy różnica czasu zapisanego w zmiennej i realnego różni się o 10min.
2a. Jeśli nie to zapisujesz nowy czas
2b. Jeśli różni się o ponad 10 min usuwasz sesję
3. Koniec...

Kod(nie sprawdzany):
  1. <?php
  2. if(isset($_session['czas']))
  3. {
  4. $_session['czas']=time();
  5. }
  6. else
  7. {
  8. $roznicaCzasow=1*60*10; //sekunda * minuta * 10 minut = 10min
  9. $czasSesi=time()-$_session['czas'];
  10. if(czasSesi>=$roznicaCzasow)
  11. {
  12. echo 'sesja się skonczyła';
  13. //Usunięcie sesji
  14. }
  15. else
  16. {
  17. $_session['czas']=time();
  18. }}
  19. ?>
gylopl
shadow... mam cos takiego, lecz niestety nie dziala;/ gdy sie loguje to odrazu przekierowywuje mnie spowrotem:(
to ma zwiazek chyba z tymi obliczeniami...(do logowania dodalem linijke ktora tworzy session[czas])

  1. <?php
  2.  
  3.  
  4. if(isset($_session['czas']) && isset($_session['zalogowany']) )
  5. {
  6. $roznicaCzasow=1*60*10; //sekunda * minuta * 10 minut = 10min
  7. $czasSesi=time()-$_session['czas'];
  8.  
  9.        if($czasSesi>=$roznicaCzasow)
  10.            {
  11.            echo 'sesja się skonczyła';
  12.            session_destroy();// Usunięcie sesji
  13.            Header('locatio:./../l_r_l/logowanie.php');
  14.            }else
  15.                {
  16.                $_session['czas']=time();
  17.                }
  18.  
  19. }
  20. else
  21. {
  22. Header('locatio: ./../l_r_l/logowanie.php'); // jeżeli ktoś wchodzi na ta strone bez logowania to przenosi go do formularza logowania.
  23. }
  24. ?>
Mchl
A może tak?

  1. <?php
  2. ini_set("session.gc_maxlifetime", "600");
  3. ?>
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.