2011-06-23 20 views
11

Tengo 2 sitios.Cómo desarmar una sesión de php específica al cerrar la sesión

En un sitio esto es cierto:

session_is_registered('site1sess') 

y en el otro esto es cierto:

session_is_registered('site2sess') 

Esos son los nombres de sesión que dan a los usuarios de inicio de sesión. Mi problema es que cuando cierra sesión en un sitio, también para cerrar sesión en el otro porque uso:

session_destroy(); 

¿Cuál es la mejor manera de cerrar la sesión de sitio1 o 2 borrar todas las variables de sesión de ella? Gracias.

+2

$ _SESSION [ 'site2sess'] = null debe hacerlo – Eamorr

+6

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

Respuesta

47

Uso unset() para todas las variables de sesión específicos para cualquiera de los sitios 1 o 2.

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

Sólo para que sepas, session_is_registered es obsoleto a partir de PHP versión 5.3.0. See docs.

+0

No es 'session_unset ($ _ SESSION ['site1']);' No se puede encontrar 'unset();' – Si8

+1

session_unset() no acepta ningún argumento ... –

+0

'session_unset()' desarmará TODAS las variables de sesión. – benjaminhull

0

al cerrar la sesión del 1

unset($_SESSION['site1sess']); 

O al cerrar la sesión del otro

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

Usted puede desarmar sesión, mientras que usted no quiere terminar la sesión usuario conectado.

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

'session_unset()' no acepta ningún argumento - desarma TODAS las variables en el actual '$ _SESSION'. [Referencia] (http://php.net/manual/en/function.session-unset.php). – indextwo

2

Antes unset($_SESSION['site1']); poner session_start() como esto

<?php 
    session_start(); 
    unset($_SESSION['site1']); 
?> 
Cuestiones relacionadas