Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/01/2002, 10:26
Avatar de Webstudio
Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: Guardar y leer de una cookie

Christian, eso es muy sencillo con PHP.

Cuando el usuario se logea al sistema, o en el momento que te parezca más adecuado, utilizas la funcion setcookie() para dejar la cookie activada. Ej:

setcookie("nombre", "Juan");

De esta manera, has seteado una cookie con nombre "nombre" y con valor "Juan". Valen aclarar dos puntos:

1) Si no indicas un tiempo de duración de la cookie, entonces es una cookie de sesión, o sea, que al cerrar el navegador la cookie se borra automáticamente. En cambio, si indicas una fecha de caducidad, entonces la cookie se guardará en la máquina del cliente y caducará llegado su momento.Ej:

setcookie("nombre", "Juan", time()+86400);

Esta Cookie durará 24 horas (86400 segundos).

2) Debes tener en cuenta que para poder setear una cookie correctamente, y debido a que esto se hace en los headers de una conexion HTTP, la funcion debe ser llamada ANTES de haber enviado cualquier contenido al browser del cliente, sino te saldrá un bonito mensje de error parecido a este :

Warning: Cannot add header information, etc etc etc.

Ahroa, una vez seteada la cookie, como la leemos? Sencillo. Desde PHP, tenemos varias formas de hacerlo. La más utilizada (pero la menos recomendada), es directamente leerla como una variable normal, ya que la mayoria de los PHP convierte una cookie a una variable. Entonces, haciendo:

echo "Hola $nombre";

Ya mostrarias el mensaje de bienvenida. Pero como te dije, este metodo no es muy recomendado porque implica una falla de seguridad en tu script. La manera que nosotros recomendamos es utilizar el array asociativo $HTTP_COOKIE_VARS, presente en todas las versiones de PHP. En el ejemplo anterior, seria:

echo "Hola ".$HTTP_COOKIE_VARS["nombre"];

Hay una tercera manera, presente a partir de PHP 4.1.0, que es utilizar el array _COOKIE["nombre"], que tiene la ventaja de ser Auto GLobal.

Bueno, creo que es una introducci+on más que suficiente al tema de las cookies.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo