Los últimos tutoriales de desarrollo web
 

PHP 5 Sesiones


Una sesión es una forma de almacenar la información (in variables) para ser utilizado en varias páginas.

A diferencia de una cookie, la información no se almacena en el ordenador del usuario.


¿Qué es una sesión de PHP?

Cuando se trabaja con una aplicación, se abre, hace algunos cambios, y luego lo 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. Sin embargo, en Internet hay un problema: el servidor web no sabe quién es ni 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 (eg username, favorite color, etc) . Por defecto, las variables de sesión duran hasta que el usuario cierra el navegador.

Asi 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.

Consejo: Si necesita un almacenamiento permanente, es posible que desee almacenar los datos en una base de datos .


Iniciar una sesión de PHP

Una sesión se inicia con el session_start() función.

Las variables de sesión se establecen con la variable global PHP: $ _SESSION.

Ahora, vamos a crear una nueva página llamada "demo_session1.php" . En esta página, se comienza una nueva sesión de PHP y establecer algunas variables de sesión:

Ejemplo

<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

</body>
</html>
Ejecutar ejemplo »

Note: El session_start() función debe ser la primera cosa en el documento. Antes de las etiquetas HTML.


Obtener PHP valores de las variables de sesión

A continuación, creamos otra página llamada "demo_session2.php" . Desde esta página, vamos a tener acceso a la información de la sesión nos propusimos en la primera página ("demo_session1.php") .

Tenga en cuenta que las variables de sesión no se pasan individualmente a cada página nueva, sino que se recuperan de la sesión abrimos al principio de cada página ( session_start() ).

Observe también que todos los valores de las variables de sesión se almacenan en la variable global $ _SESSION:

Ejemplo

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>
Ejecutar ejemplo »

Otra manera de mostrar todos los valores de las variables de sesión para una sesión de usuario es ejecutar el siguiente código:

Ejemplo

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>
Ejecutar ejemplo »

¿Como funciona? ¿Cómo sabe que soy yo?

La mayoría de las sesiones de establecer una clave de usuario en el ordenador del usuario que se ve algo como esto: 765487cf34ert8dede5a562e4f3a7e12. Entonces, cuando se abre una sesión en otra página, se examina el equipo para una clave de usuario. Si hay una coincidencia, se accede a esa sesión, si no, se inicia una nueva sesión.


Modificar una variable PHP Sesión

Para cambiar una variable de sesión, simplemente sobrescribir:

Ejemplo

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>
Ejecutar ejemplo »

Destruye una sesión de PHP

Para eliminar todas las variables globales de sesión y destruir la sesión, el uso session_unset() y session_destroy() :

Ejemplo

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// remove all session variables
session_unset();

// destroy the session
session_destroy();
?>

</body>
</html>
Ejecutar ejemplo »