2011-06-23 11 views
11

Mam 2 witryny.Jak rozbroić określoną sesję php po wylogowaniu

W jednym miejscu jest to prawda:

session_is_registered('site1sess') 

aw drugim jest to prawda:

session_is_registered('site2sess') 

Są to nazwy Sesja I daje użytkownikom na logowanie. Moim problemem jest to, że kiedy się wylogować z jednej strony, ja też wylogować w drugim ponieważ używam:

session_destroy(); 

Jaki jest najlepszy sposób, aby wylogować się z witryna1 lub 2 usuwając wszystkie zmienne sesji z nim? Dziękuję.

+2

$ _SESSION [ 'site2sess'] = null powinien zrobić to – Eamorr

+6

'unset ($ _ SESSION [ 'session_var']);' – JamesHalsall

Odpowiedz

47

Zastosowanie unset() dla wszystkich zmiennych sesyjnych specyficznych dla każdej lokacji 1 lub 2.

unset($_SESSION['site1']); 
//or 
unset($_SESSION['site2']); 

Wystarczy więc, że wiesz, session_is_registered jest przestarzała od PHP w wersji 5.3.0. See docs.

+0

Czy to nie 'session_unset ($ _ SESSION ['site1']);' Nie można znaleźć 'unset();' – Si8

+1

session_unset() nie przyjmuje żadnego argumentu ... –

+0

'session_unset()' zresetuje WSZYSTKIE zmienne sesji. – benjaminhull

0

Po wylogowaniu z 1

unset($_SESSION['site1sess']); 

Albo po wylogowaniu się z drugiej

unset($_SESSION['site2sess']); 
0

Można sesja wyłączony gdy nie chcesz się wylogować zalogowanego użytkownika.

if(isset($_GET['logout'])) { 
    session_unset($_SESSION['user']); 
} 
+0

'session_unset()' nie przyjmuje żadnych argumentów - usuwa wszystkie zmienne z bieżącej '$ _SESSION'. [Odnośnik] (http://php.net/manual/en/function.session-unset.php). – indextwo

2

Przed unset($_SESSION['site1']); umieścić session_start() tak

<?php 
    session_start(); 
    unset($_SESSION['site1']); 
?> 
Powiązane problemy