Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2008, 12:43
mrmaria
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 4
Pregunta session_unset() vs session_destroy()

Hola, teniendo el siguiente codigo en php para deslogear a un usuario:

<?php
// *** Logout the current user.
$logoutGoTo = "../home.php";
if (!isset($_SESSION)) {
session_start();
}
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);

// Agregado mio: destruyo la sesion
session_destroy();

//Agregado mio: Borro la cookie agregada al logearse
setcookie("MM_Username", "", time()-1800);

if ($logoutGoTo != "") {header("Location: $logoutGoTo");
exit;
}
?>

Resulta que en varios foros he visto acerca de la recomendación del uso de session_destroy, pero nada aclaran acerca del contenido de sus parametros; es decir: arriba transcribi tal cual el codigo que me genera dreamweaver 8, solo le agregue un par de lineas (las que comento con "Agregado mio"), entonces, mi duda es la siguiente: tengo que poner:

session_destroy($_SESSION['MM_Username']);
session_destroy($_SESSION['MM_UserGroup']);

o simplemente un solo session_destroy() y sin parámetros???

Se que unset se usa para dejar sin valor (resetear) a las variables q se usan en la sesion, que en este caso es 'MM_Username' y que destroy elimina todos los datos asociados con la sesión, entonces si la sesión solo usa 'MM_Username' no debería agregarlo en el session_destroy() ?

Por otro lado: $_SESSION['MM_Username'] donde 'MM_Username' es el nombre del usuario pero $_SESSION['MM_UserGroup'] = $loginStrGroup; ?? A eso lo genera solo dreamweaver y como se usa tambien es este archivo para deslogearse.. no me queda claro su finalidad.

Puede ser que session_unset() sea util usarlo solo en los casos en que se tenga un sitio tipo carrito de compras? Porque en mi sitio solo tengo usuarios que se validan para poder entrar y hacer determinadas cosas, con lo cual una vez que se deslogearon ya no vuelven a entrar, asique imagino q para mi codigo no haria falta poner eso de:
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
y solo bastaria con session_destroy()..

Bueno, no lo se.. he buscado bastante en los foros, pero nada con un ejemplo de codigo generado dreamweaver.
Intente ser lo más clara posible. Seguro que vuestra ayuda será de mucha utilidad. Graciass!