0% encontró este documento útil (0 votos)
60 vistas4 páginas

Curso PHP Cap11

El capítulo 11 del curso de PHP aborda el manejo de sesiones y cookies, explicando cómo PHP utiliza cookies para almacenar identificadores de sesión y cómo se pueden crear y acceder a cookies mediante funciones como setcookie() y la cabecera Set-Cookie. También se detalla el proceso para iniciar sesiones, registrar y utilizar variables de sesión, así como eliminar estas variables y destruir sesiones. Finalmente, se mencionan directivas de configuración para el control de sesiones en PHP y la importancia de las sesiones para la autenticación de usuarios.

Cargado por

Senati RV
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
60 vistas4 páginas

Curso PHP Cap11

El capítulo 11 del curso de PHP aborda el manejo de sesiones y cookies, explicando cómo PHP utiliza cookies para almacenar identificadores de sesión y cómo se pueden crear y acceder a cookies mediante funciones como setcookie() y la cabecera Set-Cookie. También se detalla el proceso para iniciar sesiones, registrar y utilizar variables de sesión, así como eliminar estas variables y destruir sesiones. Finalmente, se mencionan directivas de configuración para el control de sesiones en PHP y la importancia de las sesiones para la autenticación de usuarios.

Cargado por

Senati RV
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Curso PHP.

Captulo 11: Sesiones y cookies


16 junio, 2010Deja un comentarioGo to comments
HTTP es un protocolo sin estado. Esto quiere decir que el protocolo no dispone de un
mtodo para conservar el estado entre dos peticiones de un mismo usuario. PHP dispone
de una forma para implementar las sesiones generando un identificador de sesin
aleatorio que se almacena en el lado del cliente en forma de cookie, o si el cliente tiene
deshabilitada las cookies se pasa al servidor por la URL. Este identificador actua como
una clave y nos permite almacenar variables de sesin que se guardan en el servidor.
Cookies
Una cookie es es un fragmento de informacin que queda almacenada en el ordenador
del usuario. Las cookies contienen pares de clave/valor y solo son accesibles por el
dominio que las crea. En PHP hay dos formas de crear cookies en el ordenador del
usuario, mediante la funcin setcookie() o enviando una cabecera en la respuesta HTTP.
Para poder utilizar los dos mtodos no se deben haber enviado datos al flujo de salida.
Vamos a ver como crear cookies utilizando los dos mtodos y como recuperar la
informacin pasada por cookies desde el servidor con PHP.
-Cabecera Set-Cookie:

El protocolo HTTP cuenta con una cabecera para establecer cookies y podemos enviarla
con la funcin header() como hemos visto en captulos anteriores. La cabecera en
cuestin tiene la siguiente sintaxis:
Set-Cookie: NOMBRE=VALOR; expires=FECHA; path=RUTA;
domain=NOMBRE_DOMINIO; secure
De esta forma se crea una cookie con el nombre NOMBRE y con el valor VALOR. Los
dems parmetros son opcionales, el campo expires establece el tiempo que se
mantendr la cookie en el lado del cliente, path y domain los podemos utilizar para
restringir el acceso a la cookie a ciertos dominios o rutas, y secure establece si la cookie
se envia a travs de una conexin segura HTTPS.
<?php
header('Set-Cookie: nombre=Francisco;');
?>

En este ejemplo hemos creado una cookie en el ordenador del usuario con la clave
nombre y el valor francisco.
setcookie():

Esta funcin recibe como parmetros los mismos que la cabecera Set-Cookie, un
nombre, un valor, una fecha, una ruta, un dominio y un booleano para establecer
cookies seguras.

<?php
setcookie('nombre','Francisco');
?>

El mismo ejemplo utilizando la funcin.


-Acceder a las cookies desde PHP:

Podemos acceder a las cookies definidas mediante la variable super-global $_COOKIE,


un array asociativo que almacena los valores mediantes las claves definidas en las
cookies. De esta forma en nuestro ejemplo podemos acceder a la cookie creada de la
siguiente forma.
<?php
$nombre=$_COOKIE['nombre'];
//Imprimir Francisco
echo $nombre;
?>

Podemos eliminar las cookies si establecemos la misma cookie con una fecha de
caducidad pasada. El problema de utilizar cookies para guardar informacin referente al
usuario es que los datos se almacenan en el ordenador del usuario, y pueden no estar
disponibles si el usuario ha deshabilitado el uso de cookies en su navegador. Esta es la
principal razn por las que se utilizan las sesiones para guardar datos entre distintas
peticiones del mismo usuario.
Sesiones
PHP utiliza por defecto cookies con sesiones. Esto quiere decir que si el navegador del
usuario acepta cookies se definir una para almacenar el identificador de sesin. Si el
navegador del usuario no acepta cookies, el identificador se pasar como un parmetro
ms por la URL. Si queremos utilizar este ltimo mtodo siempre, debemos activar la
directiva session.use_trans_sid en el archivo de configuracin de PHP, aunque no est
muy recomendado.
Los pasos que hay que seguir para utilizar sesiones son los siguientes:
1. Iniciar una sesin.
2. Registrar variables de sesin.
3. Utilizar estas variables.
4. Anular las variables registradas y eliminar la sesin.
Iniciando una sesin:

Para iniciar una sesin basta con llamar a la funcin session_start() antes de enviar
cualquier caracter al flujo de salida siempre que queramos utilizar sesiones. Esta
funcin comprueba si hay un identificador para el usuario, y si lo hay carga en la
variable super-global $_SESSION todas las variables de sesin registradas.

<?php
session_start();
?>
Registrando variables de sesin:

Para registrar variables de sesin basta con definir un elemento en el array asociativo
$_SESSION de la siguiente forma: $_SESSION[clave]=valor;
<?php
session_start();
$_SESSION['nombre']='Francisco';
?>
Utilizando variables de sesin:

Antes de poder utilizar las variables de sesin definidas tenemos que iniciar la sesin.
Una vez iniciadas ya podemos acceder a las variables desde el array asociativo
$_SESSION[clave]. Si utilizamos objetos como variables de sesin debe incluir antes
la definicin de clase.
<?php
session_start();
//Imprimir Francisco
echo $_SESSION['nombre']';
?>
Anular las variables de sesin y eliminar la sesin:

Para eliminar una variable de sesin cuando ya no necesitemos utilizarla, podemos


llamar a la funcin unset() pasandole como argumento la variable que queramos
eliminar. No intenteis borrar el array $_SESSION completo porque puede deshabilitar
las sesiones. Si queremos anular todas las variables podemos crear un nuevo array
vaco.
Para destruir la sesin llamamos a la funcin session_destroy().
<?php
session_start();
//Eliminamos un par clave/valor
unset($_SESSION['nombre']);
//Eliminamos todas las variables de sesin
$_SESSION = array();
//Destruimos la sesion
session_destroy();
?>
Configurar el control de sesiones:

En el archivo de configuracin de PHP existe un conjunto de directivas para configurar


las sesiones. Ya hemos visto la directiva session.use_trans_sid que permitia establecer la
forma de pasar el id a travs de las URLs.
Algunas directivas que podemos configurar son:
session.auto_start : Inicia las sesiones automticamente, con el inconveniente que no
se pueden almacenar objetos como variables de sesin.
session.cache_expire: Establece la duracin en minutos de la sesin.
session.cookie_lifetime: Indica el tiempo que permanecer la cookie de sesin en el
navegador del usuario. Por defecto est 0, que indica que se borrar la cookie cuando el
navegador se cierre.
session.use_cookies: Establece las sesiones para que utilizen cookies. Por defecto
viene activado.
RESUMEN
Utilizando las sesiones en PHP podemos implementar la autenticacin de usuarios,
por ejemplo, para mostrar ciertos contenidos dependiendo del usuario que est
utilizando la aplicacin. Bastara con definir una variable de sesin con el nombre
o el id del usuario registrado en el sistema.
Ya hemos visto gran parte de los conceptos que utiliza PHP para intercambiar
informacin entre distintas peticiones. En el prximo captulo vamos a ver como
podemos interactuar con el sistema gestor de base de datos MySQL desde PHP,
pero antes voy a intentar redactar un artculo sobre el lenguaje de consulta
estructurado SQL.
Hasta la prxima.

También podría gustarte