Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Niszczenie sesji
Forum PHP.pl > Forum > Przedszkole
Ry4n350z
Mam oto taki kod, który niszczy sesję za pomocą liku <a href=''>. Jest on umieszczony na index2.php. Po wciśnięciu niszczy sesję i przekierowuje na index.php, gdzie jest formularz logowania.

  1. if(!isset($_SESSION['id'])) { header("Location: index.php"); return FALSE; }
  2. if(!($_GET['action']='logout')) {
  3. unset($_SESSION['id']);
  4. header("Location: index.php");
  5. }
  6.  


Po wciśnięciu przycisku nie nie niszczy sesji, gdyż po przekierowaniu mogę bez logowania wejść na index2.php.
Poker
Spróbuj tak smile.gif


  1. if(!isset($_SESSION['id'])) { header("Location: index.php"); return FALSE; }
  2. if($_GET['action']=='logout') {
  3. unset($_SESSION['id']);
  4. header("Location: index.php");
  5. }
  6.  


Ry4n350z
Teraz nie mogę się zalogować nawet sad.gif
erix
Ekhm, na pewno return false? A nie miałeś na myśli exit?
Ry4n350z
Z tego co wiem obie funkcje są niemal takie same. Jeśli nie, dzie użyć exit()?
erix
Nie są takie same.

Marsz do manuala.
Ry4n350z
No przecież napisałem że są niemal takie same.
Fifi209
Cytat(Ry4n350z @ 16.07.2011, 15:15:35 ) *
No przecież napisałem że są niemal takie same.

Nie, return służy do zwracania wyniku działania czy to funkcji czy metody w klasie. exit zabija dalsze wykonywanie skryptu. Dalej niemal takie same?
Ry4n350z
dobrze nie są takie same. smile.gif Rozwiązałem problem:

  1. if($_GET['action']) {
  2. if($_GET['action']='logout') {
  3. unset($_SESSION['id']);
  4. header("Location: index.php");
  5. exit();
  6. } }
Armed
A czy takie coś nie było by lepsze?
  1. switch($_GET['action']){
  2. case"logout":
  3. unset($_SESSION['id']);
  4. header("Location: index.php");
  5. exit();
  6. }
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.