Gracias w3Schools
Exactamente para qué nos sirve una sesión? o como la deberíamos utilizar de manera correcta y para ello imaginemos el siguiente escenario.
Cuando se trabaja con una aplicación, se abre, hace algunos cambios y luego se cierra. Esto es muy parecido a una sesión. El equipo sabe quién eres. Se sabe cuando se inicia la aplicación y cuando se termina.
Bonito no? pero eso es en un equipo en donde básicamente tienes el control de todo pero y qué pasa cuando nos referimos al servidor? en Internet hay un problema: el servidor web no sabe quién eres o lo que haces, porque la dirección HTTP no mantiene estado.
Las variables de sesión resolver este problema mediante el almacenamiento de la información del usuario a utilizar en varias páginas (por ejemplo, nombre de usuario, color preferido, etc). Por defecto, las variables de sesión duran hasta que el usuario cierra el navegador.
Así que; Las variables de sesión contienen información acerca de un solo usuario, y están disponibles para todas las páginas en una sola aplicación.
Pero pasemos a PHP crear una sesión es tan simple como esto
- session_start();
- session_unset();
- ?>
- session_start();
- $_SESSION["color"] = "green";
- $_SESSION["animal"] = "cat";
- echo "Listo ya asignamos nuestras variables de sesion";
- ?>
Nota: La función session_start () debe ser la primera cosa en su documento. Antes de cualquier etiqueta HTML.
Y bueno pero y como recuperamos los valores o como sabemos que es lo que tiene cada una de ellas en caso de requerir la información
- session_start();
- echo "Color favorito " . $_SESSION["color"] . ".
"; - echo "Animal favorito " . $_SESSION["animal"] . ".";
- ?>
- session_start();
- echo '
'
; - print_r($_SESSION);
- echo '
- session_start();
- $_SESSION["color"] = "yellow";
- print_r($_SESSION);
- ?>
Pues bien ya solo nos resta eliminar el contenido de la misma para para ello tenemos 2 funciones que básicamente funcionan igual pero no hacen lo mismo y estas son session_unset(); y session_destroy();
Y a que nos referimos con esto pues bueno session_unset() libera todas las variables de sesión actualmente registradas mientras que session_destroy() destruye toda la información asociada con la sesión actual. No destruye ninguna de las variables globales asociadas con la sesión, ni destruye la cookie de sesión. Para volver a utilizar las variables de sesión se debe llamar a session_start().
y para usarlas pues es solo tenemos que hacer lo siguiente en el caso de session_unset()
- session_start();
- session_unset();
- ?>
- session_start();
- session_destroy();
- ?>