Está en la página 1de 5

@INTE ACADEMIA

Curso de PHP

Sesin 21. Sesiones


21.1. Sesiones Las sesiones nos permiten mantener informacin entre las pginas cuando un usuario est navegando. Esto nos permite, por ejemplo, guardar las compras que hace en una tienda virtual para cobrarle al final. Las sesiones permiten guardar algunos datos mientras el usuario est activo, de modo que podamos identificarlo conforme va navegando por nuestra pgina. Los datos de una sesin se guardan todos en la misma seccin del servidor, junto con todos los datos de la misma. 21.2. Un primer ejemplo El siguiente cdigo permite crear un contador que vaya indicando cuantas pginas hemos visitado en un sitio: <? session_register('contador'); //$contador=0; print("Contador vale:". ++$_SESSION['contador']); ?> Lo primero que se hace es abrir la sesin. Esto se puede conseguir de dos maneras, con session_start(), que comienza una sesin o con sessin_register(), que comienza una sesin y crea una variable de sesin nueva. es2.php.net session_start() crea una sesin (o la contina basandose en el session id pasado por GET o mediante una cookie). Si desea usar una sesin con un nombre en concreto, debe llamar a session_name() antes de llamar a session_start() session_register() acepta un nmero variable de argumentos, cualquiera de los cuales puede ser o una cadena que contiene el nombre de una variable, o una matriz que consista de nombres de variables u otras matrices. Para cada nombre, session_register() registra la variable global con ese nombre en la sesin actual.

1/5

AINTE INFORMTICA S.L.

@INTE ACADEMIA 21.3. La ID de sesin

Curso de PHP

La SID o identificador de sesin nos permite acceder a un identificador nico que tiene cada sesin dentro del servidor. A continuacin puede ver un pequeo programa que crea una sesin, nos imprime el nmero y luego la destruye. session_destroy() destruye todos los datos asociados con la sesin actual. No destruye ninguna de las variables globales asociadas a la sesin ni la cookie. <? session_start(); echo SID; session_destroy(); ?> 21.4. Guardar campos de formularios A continuacin tiene los cdigos de tres pginas llamadas 01nombre.php, 02apellidos.php, 03resultado.php. 01nombre.php
<? session_start(); echo SID; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin t&iacute;tulo</title> </head> <body> <p>Escribe tu nombre</p> <form id="form1" name="form1" method="post" action="02apellidos.php"> Nombre

2/5

AINTE INFORMTICA S.L.

@INTE ACADEMIA
<label> <input name="cnombre" type="text" id="cnombre" /> </label> <p> <label> <input type="submit" name="Submit" value="Enviar" /> </label> </p> </form> <p>&nbsp;</p> </body> </html>

Curso de PHP

02apellidos.php <? session_register('nombrecillo'); $nombrecillo=$_POST['cnombre']; $_SESSION["nombrecillo"] = $nombrecillo; print($nombrecillo); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin t&iacute;tulo</title> </head> <body> <p>Muy bien <? print($nombrecillo); ?> hemos guardado tu nombre. Ahora mete tu apellido.</p> <form id="form1" name="form1" method="post" action="03resultado.php"> <p>Apellidos <label> <input name="capellidos" type="text" id="capellidos" />

3/5

AINTE INFORMTICA S.L.

@INTE ACADEMIA
</label> </p> <p> <label> <input type="submit" name="Submit" value="Enviar" /> </label></p> </form> </body> </html>

Curso de PHP

03resultado.php <? session_register('apellidos'); $nombrecillo=$_SESSION['nombrecillo']; $apellidos=$_POST['capellidos']; print($apellidos); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin t&iacute;tulo</title> </head> <body> Muy bien. Tu nombre es <? echo "$nombrecillo"; ?> y tu apellido es <? print($apellidos); ?> </body> </html>

La primera pgina comienza la sesin de PHP con SESSION_START. 4/5 AINTE INFORMTICA S.L.

@INTE ACADEMIA

Curso de PHP

Luego se crea un formulario donde el usuario introducir su nombre. Este formulario llama al archivo 02apellidos.php. Aqu lo primero que se hace es procesar el nombre e introducirlo en una variable de sesin llamada nombrecillo.
session_register('nombrecillo'); $nombrecillo=$_POST['cnombre']; $_SESSION["nombrecillo"] = $nombrecillo;

Una vez guardada esta variable, ponemos otro formulario para introducir los apellidos. La respuesta a este formulario introduce los datos en otra variable de sesin llamada apellidos. Adems, necesitamos la orden $_SESSION['nombrecillo']; para recuperar el valor de la variable de sesin nombrecillo y poder introducirla en la pgina.
session_register('apellidos'); $nombrecillo=$_SESSION['nombrecillo']; $apellidos=$_POST['capellidos']; print($apellidos);

5/5

AINTE INFORMTICA S.L.

También podría gustarte