Вы находитесь на странице: 1из 3

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

Sesiones en PHP
Una de las principales limitaciones del protocolo HTTP es que no permite relacionar peticiones consecutivas en sesiones. La sesin es importante, porque permite que no tengan que reenviar los mismos datos en todas las peticiones (y respuestas) entre cliente y servidor. PHP proporciona las sesiones, que permiten conservar datos de una determinada peticin en peticiones de la misma mquina. Para ello cada peticin de un cliente recibe un identificador nico llamado "session_id". Este valor se puede almacenar en una cookie o bien propagarlo en la URL. session_id()

Devuelve los 32 caracteres que forman el identificador de sesin. session_name()

Devuelve el nombre de la sesin, normalmente PHPSESSID. session_start()

Sirve para crear una sesin. A partir del momento en que se invoque, se pueden almacenar variables en ella con la siguiente sintaxis: $_SESSION['variable1'] = 8; Para utilizar las variables en pginas sucesivas se ha de invocar la funcin session_start(). session_register()

Esta funcin tambin permite iniciar sesiones, almacenar variables en ellas y hacer accesibles variables de la sesin creada anteriormente. Las funciones session_start() y session_register() han de invocarse antes de enviar ningn dato al cliente. Es decir, tienen que ir antes de la marca <HTML> e, incluso, antes de ningn retorno de carro, espacio o tabulador. Para eliminar una variable de una sesin se podra hacer: unset($_SESSION['variable1']); session_destroy()

Elimina una sesin.

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

Ejemplo_Session: Acceder a una pgina privada a la que slo se puede si existe una sesin con la variable "acceso" con valor 1, que se crear siempre que el usuario sea el correcto, sino te reenviar a la pgina inicial. Ejemplo index.html <h3>Acceder a una sesin privada</h3> <form method=post action="acceso.php"> Usuario: <input type="text" name="nombre"> <br> Contrasea: <input type="password" name="clave"> <br> <input type="submit" name="aceptar" value="enviar"> </form> Ejemplo acceso.php <?php $nombre=$_POST["nombre"]; $clave=$_POST["clave"]; if ($nombre=="root" && $clave=="123"){ session_name("administrador"); session_start(); $_SESSION["acceso"]=1; $_SESSION["nombre"]=$nombre; echo "<h3>Usuario autentificado</h3>"; echo "<a href=privada.php>Acceder a la pgina privada</a>"; } else{ header("Location:index.php"); exit; } ?> <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Acceso</title> </head> <body> </body> </html>

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

Ejemplo privada.php <?php session_name("administrador"); session_start(); ?> <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Privada</title> </head> <body> <?php if(isset($_SESSION["acceso"])){ if($_SESSION["acceso"]==1){ echo "Bienvenido a la pgina privada $_SESSION["nombre"] ."<br>"; echo "<a href=salir.php>Salir del sistema</a>"; } }else{ echo "Has de iniciar sesin<br>"; echo "<a href=index.php>Volver al inicio</a>"; } ?> </body> </html> Ejemplo salir.php <?php session_name("administrador"); session_start(); session_destroy();

".

?> <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Salir</title> </head> <body> <?php echo "Ha salido del sistema <br>"; echo "<a href=index.php>Volver al inicio</a>"; ?> </body> </html>

Вам также может понравиться