Inicio | Suscripción gratuita | Ayuda | Contacto
Zips del Conocimiento
  Contenido

Archivo histórico
Cursos con Constancia
Cursos Gratis
Libros digitales gratis
Capsulas del saber
Descargas gratis


  Populares
- Teoría de la evolución
- Cómo practicar el yoga
- Crean un dedo artificial con tacto
- La capacitación de los recursos humanos
- Objetivos de la educación sexual en niños
- Movimientos de apertura y cierre
- ¿ Que es una solicitud de empleo ?
- Cómo elegir el rimel ideal
- Una buena broma - Ocultar botón de apagar el sistema
- Descubren planeta cubierto de agua
- Hormonas de crecimiento para heridas
- Chiles rellenos en escabeche
- Números cuánticos
- Conoce TYPO3
- Tutorial de Fireworks 8


 :: Tutorial Sesiones y Cookies con PHP

Objetivo: Aprenderás el manejo de las Sesiones y Cookies con el lenguaje de programación PHP.
Temas:

¿Que son las sesiones y las cookies?
Introducción al manejo de sesiones y cookies con PHP
Manejándonos con sesiones
Manejándonos con cookies

1. ¿Que son las sesiones y las cookies?

Sesiones:
Una sesión (o session en inglés) se define como:

La secuencia de páginas que un usuario visita en un sitio web, desde que ingresa a nuestro sitio hasta que se retira de nuestro sitio.

Con PHP es posible asignar un identificador único, al cual comúnmente se lo denomina “la sesión” (o sea, la sesión de un usuario determinado puede ser identificada sin lugar a ambigüedades).

Las sesiones son almacenadas en el servidor, por un período terminado de tiempo.

El proceso lógico en cualquier lenguaje de programación para hacer esto sería:
- Si existe una sesión para el usuario la retomamos
- Si no existe, creamos una nueva generardo un identificador único

Esta lógica debe seguirse en cada uno de las páginas del sitio, para que no se pierda el hilo de navegación del usuario.

Cookies:
Una cookie es un string (cadena de texto) que se genera en el servidor con información relevante y que almacena el navegador, siempre y cuando el navegador posea habilitada esta característica.
Por ello, si se van a utilizar cookies, se debe siempre tener en cuenta que el usuario podría no aceptarlas, viéndonos forzados a trabajar sin ellas.

Las cookies son utilizadas para guardar información relevante del usuario, como por ejemplo: país, idioma, preferencias sobre configuraciones en distintas páginas, y hasta identificadores de sesiones en un sitio dado.

Estas sirven para no tener que volver a generar información sobre el usuario cada vez que el mismo visita nuestro sitio. Por ejemplo, si tenemos una página ppal. que posee dos banderitas una para ingresar al sitio en idioma español y otra para ingresar al sitio en idioma inglés, podríamos guardar una cookie para realizar el acceso directo la próxima vez que el usuario visite el sitio.

Diferencia entre sesión y cookie:
La gran diferencia es que las sesiones se mantienen por un período de tiempo determinado (por ejemplo, una hora), en el servidor, o bien, hasta que se cierre el navegador; mientras que las cookies, siempre que sean aceptadas por el navegador, se mantienen en el cliente (navegador del usuario), hasta que no sea eliminada manualmente por el mismo.

2. Introducción al manejo de sesiones y cookies con PHP

PHP posee una serie de funciones a nuestra disposición que nos hacen más fácil que en otros lenguajes, realizar el manejo de las mismas.

La sintáxis y explicación detallada de las funciones de PHP pueden ser leídas desde la página oficial de documentación de PHP (http://ar.php.net/docs.php) . Esta página se encuentra disponible en distintos idiomas pero recomiendo que siempre verifique que el idioma de su preferencia esté actualizado dándole una mirada a la versión en inglés, ya que siempre se encuentra más actualizada que las otras.

Sesiones:
Para el manejo de sesiones, utilizaremos la función session_start() (http://ar.php.net/manual/en/function.session-start.php), esta función crear (inicializarla) una sesión, o bien, la continúa basándose en la “session id” pasada por GET o POST o COOKIE.

Esta función es la más básica y genera automáticamente una cookie que envía al navegador, para que éste se la devuelva cada vez que peticione una página del sitio.

Podemos conocer la sesión en cualquier momento mediante la función session_id().

Cookies:
Para enviar una cookie al navegador del usuario utilizaremos la función setcookie() (http://ar.php.net/manual/en/function.setcookie.php), la sintaxis de esta función es un tanto larga, pero no difícil de interpretar:

bool setcookie ( string nombre [, string valor [, int expirar [, string ruta [, string dominio [, bool segura [, bool solohttp ]]]]]] )

Esto quiere decir que si o si, debemos darle un nombre a la cookie y los otros valores son alternativos, aunque generalmente la usaremos pasándole también un valor determinado y un tiempo en el que caducará. Con menor frecuencia también puede ser necesario indicar la ruta (en el servidor) y el dominio para el cual la cookie tiene efecto. Las últimas dos son para sitios de seguros (solo permitir conexiones desde HTTPS) y para solo permitir conexiones de tipo HTTP, respectivamente. Esta última está disponible solo desde PHP 5.2.0.

3. Manejándonos con sesiones

Para comprobar que las sesiones realmente funcionan primero realizaremos un simple test que constará de crear dos archivitos PHP, al llamar al primero, pagina1.php, se creará la sesión y se informará, y luego al peticionar al segundo, pagina2.php, continúa la sesión anterior y podremos notar que el session_id() es el mismo:

pagina1.php
**************
Código:
<?php
   session_start();
   echo "He inicializado la sesión, el id es: " . session_id();
?>

pagina2.php
**************
Código:
<?php
   session_start();
   echo 'La sesión actual es: ' . session_id();
?>


Importante: Uno de los errores más comunes cuando se utilizan sesiones es dejar líneas en blanco antes de la inicialización de PHP o enviar alguna salida a la pantalla.
Si se tiene activadas las cookies, esto puede provocar errores por pantalla parecidos el siguiente:

Warning: Cannot send session cookie - headers already sent by (output started at /home/USUARIO/session.php:2) in /home/session.php on line 4

También existe otra función muy utilizada, session_register(), la cual realiza la función de session_start() (crea o toma una sesión), pero sirve para mantener variables en la memoria del servidor.

Un ejemplo básico de esta función podría ser la generación de contador:

Código:
<?php
   session_register('contador');
   echo '<a href="' . $_SERVER["PHP_SELF"] . '?' . $_SERVER["SID"] . '">Contador vale: ' . ++$_SESSION['contador'] . '</a>';
?>


En este ejemplo utilizamos $_SERVER["PHP_SELF"] que es el nombre de nuestro propio script y $_SERVER["SID"] que contiene el id de la sessión, estos valores son tomados “al vuelo”, o sea, en el momento, cada vez que se ejecuta un script PHP. También se utiliza $_SESSION que contiene todas las variables registradas para la sesión dada.

Recuerden que pueden ver todas las variables y características PHP disponibles en cualquier servidor ejecutando un archivo php que contenga la siguiente línea:

Código:
<?php phpinfo(); ?>


4. Manejándonos con cookies

Un ejemplo de cómo setear una cookie mediante PHP sería:

Código:
<?php
   setcookie("usuario", "Luis", time()+3600,"/","midominio.com");
?>


En este ejemplo establecemos una cookie de nombre usuario que contiene el valor Luis, que dura 1 hora (3600 segundos) válida para todo el dominio midominio.com

Una vez que una cookie es seteada, y mientras no expire, podemos obtener el valor que guardamos utilizando la variable predefinida de PHP, $_COOKIE, en cualquier momento, por ejemplo, para mostrarla:

Código:
<?php
   $_COOKIE["usuario"];
?>


Ahora pasaremos a un ejemplo un tanto más elaborado, supongamos que tenemos un formulario en el cual se indica el nombre y dirección de correo de un usuario, al enviar el formulario se seteará la cookie mediante el llamado a procesar_form.php:

formulario.html
******************
Código:
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
   <H1>Uso de cookies</H1>
Introduzca su nombre:
<FORM ACTION="procesar_form.php" METHOD="POST">
   <INPUT TYPE="text" NAME="nombre"><BR>
   <INPUT TYPE="text" NAME="mail"><BR>
   <INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>


procesar_form.php
**********************
Código:
<?php
   if (isset($_POST[“nombre”])) {
      $datos = $_POST[“nombre”] . “|” . $_POST[“mail”];
       setcookie("usuariodatta", $datos, time()+3600);
   }
?>


Notar que se concatenaron las variables pasadas por post, nombre y mail, separándolas con el carácter | (pipe), esto es una buena práctica para luego poder separar el valor de una cookie, en los valores reales necesarios, esto puede lograrse utilizando la función explode() (http://ar.php.net/manual/es/function.explode.php).

Una vez hecho esto, podremos saber el valor de la cookie en todo momento, dentro de la hora de validez de la cookie creada, por ejemplo, un PHP que nos muestra el nombre y valor de la cookie:

ver_valor_cookie.php
*************************
Código:
<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
<H1>Uso de cookies</H1>
   Se ha establecido la cookie de nombre <b>usuariodatta</b> y vale: <b><?php print $_COOKIE['usuariodatta'];?></b>
</body>
</html>


TIP: Podemos saber todas las cookies que se encuentran seteadas en determinado momento para nuestro navegador, ejecutando la siguiente linea en PHP:

Código:
<?php print_r($_COOKIE); ?>


Recuerde que las cookies seteadas en su navegador pueden ser más de las que Ud. ha seteado.

Fuente: Basado en el seminario de www.dattatec.com/seminarios/seminario_280207.doc


 
  Opciones
Zips GRATIS en tu email:


Zips Populares
- Cognición
- Problemas cardíacos suelen desencadenar depresión
- Sobrecalentamiento del procesador
- Nacimiento de Venus de Botticelli
- Trucos para hidratarse en la playa
- Cómo detectar el uso abusivo de drogas
- Estudian cómo se alimentan hoyos negros







Si buscas algún curso manual guía recurso definición libro ó ebook gratis este es tu lugar.
Sindicar contenidos
Educación no formal - Diario Tecnológico - Competencias - ConocimientosWeb - Microlearning
Todos los logos y nombres mencionados de marcas que se publican en este sitio son de sus respectivos dueños.
Condiciones de Uso