Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zycie sesji
Forum PHP.pl > Forum > Przedszkole
trucksweb
durne pytanie, system logowania tworzy sesje:
  1. <?php
  2. //ustawienie danych sesji
  3. session_name('loginsystemu');
  4. ini_set('session.gc_maxlifetime',5);
  5. $id = $row[0];
  6. $nazwa_admina = $row[1];
  7. $login = $row[2];
  8. $haslo = $row[3];
  9. $uprawnienia = $row[4];
  10. session_register("nazwa_admina");
  11. session_register("login");
  12. session_register("haslo");
  13. session_register("uprawnienia");
  14. ?>


i teraz co jest zle, ze czas zycia sesji nie jest uwzgledniany ? tzn, chcialbym aby po 5s sesja zostala usunieta sciana.gif
kosmos
Ja ustawiam czas życia sesji w taki sposób

Kod
$_SESSION['expire']= time() + 3600;


bedzie trzymana przez 3600 sekund czyli w tym przypadku przez godzinke. smile.gif
netmare
Czas życia sesji z usuwaniem sesji ma nie wiele wspólnego, poczytaj o session garbage collection

w php.ini dla php5

session.gc_probability = 1
session.gc_divisor = 1000


Możesz pozmieniać te wartości, tylko nie przesadź, bo w przypadku dużego projektu może to skutecznie obciążyć system.
kosmos
Cytat(trucksweb @ 17.04.2008, 23:15:37 ) *
tzn, chcialbym aby po 5s sesja zostala usunieta sciana.gif


Sorry ale odwołałem się do ostatniego zdania. Kolega chciał aby po 5 sekundach sesja została usunięta to podałem mu kod na jej wygaśnięcie . Koniec
trucksweb
tak dzieki za kod, tylko ze ona mi wcale nie gasnie worriedsmiley.gif caly czas trwa i mozna poruszac sie po stronie,
musze dokladniej zobaczyc co zle zrobilem lub gdzie sie moze nadpisuje sesja
kosmos
Najlepiej wklej kod który teraz masz. W ciemno nic nie poradzimy smile.gif
tomigram
Hej

mam pytanko odnosnie sesji... gdy user nie nacisnie wyloguj i wylaczy przegladarke i odpali strone od nowa nie wyswietla sie nic.Dopiero gdy usune recznie ciastko wszystko dziala..
Skrypt wyglada tak:

  1. <?php
  2.  
  3.  
  4.  
  5. session_start(); //sesje, do logowania
  6. ob_start(); //emulacja headerow
  7.  
  8. mysql_connect($host, $user, $password); //polaczenie z mysql
  9. mysql_select_db($database) or die(&#092;"Nie udało się wybrać bazy danych\"); //wybor bazy
  10.  
  11.  
  12. $login = isset($_SESSION['login']) ? $_SESSION['login'] : mysql_escape_string($_POST['login']);
  13. //filtracja zmiennej
  14. $haslo = mysql_escape_string(md5($_POST['pass'])); //filtracja + haszowanie hasla
  15.  
  16. $zapytanie = mysql_query(&#092;"SELECT * FROM XXX WHERE login = '$login'\"); //pobranie rekordow
  17.  
  18. $dane = mysql_fetch_array($zapytanie);
  19.  
  20. /* sprawdzamy poprawnosc przeslanych danych */
  21.  
  22. if(isset($_POST['login']) && isset($_POST['pass'])) {
  23. if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
  24. {
  25.  
  26. $_SESSION['admin']='ok'; //sesja przyjmuje wartosc 'ok' gdy dane z formularza 
  27. zgadzaja sie z danymi z bazy
  28. $_SESSION['login']=''.$dane['login'].'';
  29.  
  30. setcookie(&#092;"log\" , \"log\", time()+3600, \"/\",\"\", 0); //tworzymy ciastko
  31. header(&#092;"Location: log.php\"); //przenosimy na strone
  32.  
  33. }
  34. else { echo 'Blad logowania, probuj dalej :) '; } //w przypadku zlych danych
  35. }
  36.  
  37.  
  38.  
  39. if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] 
  40. != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))
  41.  
  42. {
  43.  
  44.  
  45. Panel administracyjny
  46.  
  47.  
  48.  
  49. Login:
  50.  
  51. Haslo:
  52.  
  53.  
  54. ';
  55.  
  56.  
  57.  
  58.  
  59. }
  60.  
  61. if($_SESSION['admin'] == 'ok' && isset($_COOKIE['log']))
  62. //warunek, ktory sprawdza czy sesja ma odpowiednia
  63.  wartosc oraz czy istnieje ciastko, jest to koniunkcja, wiec bedzie prawdziwa
  64.  jesli oba warunki zostana spelnione
  65. {
  66.  
  67.  
  68. echo 'Jestes zalgowany jako '.$_SESSION['login'].', Wyloguj ';
  69.  
  70. if($_GET['p']=='wyloguj') {
  71.  
  72.  
  73.  
  74. session_destroy(); //kasujemy sesje
  75. setcookie(&#092;"log\" , \"log\", time()-3600, \"/\",\"\", 0); //kasujemy cookies
  76.  
  77. header(&#092;"Location: log.php\"); //przenosimy na strone logowania
  78.  
  79. }
  80. ?>
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.