La variable $_SESSION es una Superglobal en PHP, por tanto está disponible en cualquier parte de los scripts sin la necesidad de usar un global de llamada. está variable es muy similar a un $_COOKIE pero la diferencia es que se graba en el servidor y dura hasta que el navegador sea cerrado (no la pestaña de visualización, hablo de cerrar el navegador completo).
Esto es útil por ejemplo para carritos de compra, guardar cierta configuración solo para esa visita en especial, etc.
Si en alguna parte de un script (pagina1.php) guardamos un valor usando esa variable
$_SESSION['nickname']="Jhonnyf";
Esta variable estará disponible en cualquier otro script (pagina2.php, test.php, cualquierpagina.php) mientras el navegador NO SEA CERRADO se podrá tener acceso a los datos grabados ahí.
Como usarlo:
Lo primero es llamar a la función que Inicia/Continua la sesión y desde ahí ya puedes comenzar a grabar
session_start(); $_SESSION['nickname'] = 'Jhonnyf';
Luego de eso, en otro script debes volver a llamar a la función session_start(); y usar la variable previamente grabada.
Por ejemplo vamos a grabar un Nickname en un script y luego usarlo en otros 2 scripts
pagina1.php
<?php session_start(); //Iniciamos o Continuamos la sesión if (isset($_POST['txtusuario'])) //Si llego un Nickname vía el formulario lo grabamos en la sesión { $_SESSION['nickname'] = $_POST['txtusuario']; //Nickname Grabado } if ($_SESSION['nickname']) //Si hay un nickname en la sesión actual, creamos una variable que será mostrada { $grabado="El valor Grabado Previamente es: <strong>".$_SESSION['nickname']."</strong><br /> <a href='pagina2.php'>pagina2.php</a>"; } ?> <html> <head> </head> <body> <?php echo ($grabado); //El mensaje si hay nickname?> <form action="" method="post"> Escribe tu Nickname: <input type="text" size="25" name="txtusuario" value="<?php echo $_SESSION['nickname'];?>"/> <br /> <input type="submit" value="Grabar" /> </form> </body> </html>
pagina2.php
<?php session_start(); //Iniciamos la sesión o la Continuamos if ($_SESSION['nickname']) { $grabado="El valor Grabado en <a href='pagina1.php'>pagina1.php</a> fue: <strong>".$_SESSION['nickname']."</strong><br />"; //Si existe un nickname generamos el mensaje } else { $grabado="No has grabado ningún Nickname visita la <a href='pagina1.php'>pagina1.php</a>"; //Mensaje que no existe nada Grabado } ?> <html> <head> </head> <body> <?php echo ($grabado); ?> </body>
Puedes verlo en funcionamiento en los siguientes enlaces:
http://www.elcodigofuente.com/ejemplos/pagina1.php
http://www.elcodigofuente.com/ejemplos/pagina2.php
Si entras primero en la pagina2.php no veras nada grabado ya que es la pagina1.php donde se graban los datos, y solo se eliminan los datos cuando cierras el navegador web.
Aquí los archivos para descargar:
Agregue un comentario