Академический Документы
Профессиональный Документы
Культура Документы
Tema 4:Sesiones
Sesiones Cookies Cookies en PHP URL Sesiones en PHP Crear e inicializar las variable de sesin Ventajas de Sesiones en PHP Funciones de manejo de sesiones
Sesiones
El protocolo de transferencia de hipertexto HTTP no almacena estados. Esto significa que cada vez que solicitamos una pgina a un servidor representa una conexin distinta. Asociar un identificador de Sesin (SID) a la conexin Mecanismos ms usados para la persistencia:: Cookies URL Sesiones en PHP
Cookies
Mediante un encabezado del protocolo HTTP el server pueda almacenar informacin en el cliente. A esta informacin que el server guarda en el cliente se la denomina Cookies. Las cookies pueden habilitarse o deshabilitarse desde el navegador por los que algunos usuarios no lo soportan. Cada vez que el navegador solicita una pagina del dominio que envi la cookie => reenva la cookie al sitio, de esta forma es posible mantener persistencia.
Servidor web
Cookies en PHP
Para crear una cookie en PHP se utiliza la funcin setcookie cuya sintaxis es la siguiente:
int = setcookie (nombre, valor, expiracin, path, dominio);
nombre: Nombre de la cookie a setear por ejemplo sesion valor: Valor que contendra la cookie, como por ejemplo JFJK123 expiracin: Fecha de vencimineto de la cookie (fecha en la cual el browser la borra del disco del usurio). path: en general suel setearse en /. dominio: Dominio para el cual el cookie es valido ejemplo .prueba.com en cuyo caso sirve para algo.prueba.com, site1.prueba.com , site2.prueba.com y todos los de la misma forma.
La funcin devuelve verdadero si pudo setearse la cookie o falso en caso contrario (por ejemplo si el navegador no acepta cookie).
Cookies en PHP
Un ejemplo
$val = setcookie(sesion,1,time()|3600,/,.prueba.com);
Podemos recuperar el valor de una cookie se debe usar el vector de PHP $HTTP_COOKIE_VARS que es vector asociativo idexado por nombre.
$ck = HTTP_COOKIE_VARS[sesion];
URL
Usando el url se puede pasar datos de una pagina a otra usando el query string de la forma:
http://dominio/path?query_string Donde query_string es de la forma: variable1=valor1&variable2=valor2..etc De esta forma podramos hacer un manejo similar al anterior pero pasando el sesion_id usando el url en lugar de usar cookies. La desventaja de este mtodo es que todos los links deben generarse de la forma:
<a href=http://dominio/path?sesion=<?print($sesion_id);?>>
Sesiones en PHP
PHP soporta desde el lenguaje el concepto de sesiones en forma nativa . Las variables de sesin se almacenan en el servidor y tienen un tiempo limitado de existencia.
Para identificar al usuario que gener las variables de sesin, el servidor genera una clave nica que es enviada al navegador y almacenada en una cookie. Luego, cada vez que el navegador solicita otra pgina al mismo sitio, enva esta cookie (clave nica) con la cual el servidor identifica de qu navegador proviene la peticin y puede obtener de un archivo de texto las variables de sesin que se han creado.
Servidor web Enva una peticin Variable de session Cliente (navegador) cookie
<?php session_start();
//Para almacenar los valores en las variables de sesin lo hacemos
$_SESSION[barney"] = "Un dinosaurio grande y violeta."; ?> <a href = "pagina2.php">Siguiente pagina</a>
Sesiones en PHP
Unas vez registrada una variable de sesion la misma estar disponible en todas las paginas que usen session_start() durante la sesin actual.
Cualquier tipo de variables de PHP puede registrase con este mtodo, incluyendo objetos (solo los atributos del objeto, no los mtodos). pagina2.php <?php session_start(); echo "El contenido de \$barney es : $barney<br>"; ?>
$_SESSION[nombre] = valor
Ingreso de datos
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta name="GENERATOR" content="Quanta Plus" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form id="datos" action="iniciarSesion.php" method="get"> <p>Ingrese sus datos personales</p> <p><input type="text" id="nombre" name="nombre" maxlength="15" /><br /> <input type="password" id="clave" name="clave" maxlength="15" /> <input type="submit" value="Enviar" /> </p> </form> </body> </html>
Comienzo de sesin
<?php session_start(); session_register('nombre'); session_register('clave'); $_SESSION['nombre']=$_GET['nombre']; $_SESSION['clave']=$_GET['clave']; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>BIenvenido</title> <meta name="GENERATOR" content="Quanta Plus" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h1>Bienvenido</h1> <p>Inici sesin como <?php echo $_GET['nombre'] ?></p> <p>Para comprobar que se almacenan los datos de la sesin, pulse <a href="verDatos.php">aqu</a></p> </body> </html>
Variables de sesin
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Datos Recibidos</title> <meta name="GENERATOR" content="Quanta Plus" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h1>Recibidos</h1> <p>Est en la sesin iniciada por <strong><?php echo $_SESSION['nombre'] ?></strong> con contrasea <em></em> <?php echo $_SESSION['clave'] ?></em></p> </body> </html>
Bibliografa
Sesiones en DesarrolloWeb:
http://www.desarrolloweb.com/articulos/3 21.php