PHP y galletas; ¡una buena mezcla!

| by Dennis Pallett | December 06, 2004
Introducción

Las galletas se han utilizado de largo en escrituras de PHP, y son una función muy útil. ¿Pero cuáles son exactamente galletas? Entonces has utilizado quizá, pero todavía no sabes exactamente cuáles son. ¿O eres totalmente nuevo a las galletas? No importa, porque en esta clase particular te demostraré exactamente cuáles son las galletas, y para qué se utilizan.

Galletas en una cáscara de nuez

Las galletas son pedazos de la información pequeños que se almacena en la computadora de tus visitantes. Cada browser la dirige diferentemente, pero almacena lo más simplemente posible la información en un archivo de texto pequeño. El Internet Explorer tiene una carpeta especial, que se puede encontrar en tu carpeta de C:Windows o de C:WindowsSystem32. Puedes suprimir todas tus galletas, yendo a las opciones y a las “galletas que despejan” o suprimiéndolas a mano. No recomiendo esto sin embargo.

Casi cada Web site utiliza las galletas. Si vas a Amazon.com, conseguirás varias galletas. Igual va para CNN.com. ¡Incluso Google utiliza las galletas! Son extremadamente útiles para (temporalmente) almacenar la información. Por ejemplo, si tienes un sistema de la conexión para tus visitantes, podrías ahorrar su userid y contraseña (cifrados muy pesadamente!) se entran tan automáticamente la próxima vez que visitan tu Web site.

O podrías recordar su visita pasada, y toque de luz todo que es nuevo. Y eso es justo el principio.

Usar las galletas

Usar las galletas en PHP es extremadamente fácil. De hecho, no hay nada a él, debido a la función incorporada del setcookie de PHP () (http://php.net/setcookie). Tener una mirada en la documentación, y después intentar el ejemplo siguiente: ¿<? php//fijó un nombre de la galleta de la galleta: valor conocido de la galleta: La galleta de Dennis Pallett//expira: en 24 hourssetcookie (“nombre”, “Dennis Pallett”, tiempo () + (60*60*24))¿;? >

Si funcionas el código arriba, después una galleta será fijada. Ése es todo. El nombre y el valor de la galleta son bastante obvios. La galleta expira es cuando expira la galleta, o sale. Utilizar simplemente la función del tiempo () (http://php.net/time) y agrega el número de segundos que deseas comer la galleta disponible para él. En el ejemplo 1 agregado segundos 60*60*24=86400, o 24 horas.

Si has mirado la documentación, notaste probablemente que hay discusiones adicionales. Pues la documentación dice, la trayectoria es limitar una galleta a una trayectoria específica en tu web server. Esto es de uso frecuente cuando funcionas casos múltiples de la misma escritura en directorios separados. Puedes omitir con seguridad esta discusión cuando no importa si la galleta es sitio-ancha disponible.

Hay también la discusión del dominio. Esto se puede utilizar para limitar la galleta a un secundario-dominio específico, e.g. test.example.com. Puedes también no hacer caso con seguridad de esta discusión, o fijarla a .example.com (observar el período que comienza, éste es esencial!).

Finalmente, hay también la discusión segura. Esta discusión se utiliza solamente para las galletas que se envían sobre una conexión segura de HTTPS (SSL). Apenas no hacer caso de esta discusión, a menos que estés trabajando con una conexión segura.

Una cosa que debe ser mencionada es que las galletas deben ser fijadas, antes de que exhibas cualquier HTML/text. Es probablemente la mejor si giras el buffering de la salida poniendo el ob_start () (http://php.net/ob_start) en la tapa de tu página.

Ahora que has fijado una galleta, deseas probablemente recuperar el valor también. Después de todo, que es el punto entero de usar las galletas. Agradecidamente, como PHP es siempre tan fácil, puedes recuperar la misma manera que recuperas un valor del CONSEGUIR. Ver el ejemplo siguiente para recuperar el valor del ejemplo anterior: ¿<? el phpecho “tu nombre es”. ¿$_COOKIE [“nombre”];? >

Esto debe imprimir “tu nombre es Dennis Pallett”. No hay nada más a él. ¡Es justo que fácil!

Finalmente, una cosa que deseas probablemente hacer también es quita las galletas. Esto es tan fácil como fijándolas. Cambiar simplemente el valor de la galleta a FALSO, y cambiar la fecha del expirar a -3000 segundos. Ver el ejemplo siguiente: ¿<? ¿phpsetcookie (“nombre”, FALSO, tiempo () - 1000);? >

Comprobando si se permiten las galletas

Antes de que comiences a usar las galletas, debes cerciorarse de que tu visitante haga las galletas permitir. Esto se puede hacer con simplemente un PHP que comprueba la escritura. Desafortunadamente, la página de PHP necesita recargar para comprobar para saber si hay galletas. Pero esto se puede hacer muy transparente, y tu visitante debe notar apenas cualquier cosa.

¿El ejemplo siguiente primero fijará una galleta de la prueba, en seguida recarga la página, y finalmente comprueba si las galletas son enabled.<? el phperror_reporting (^ E_NOTICE del ^ E_WARNING de E_ALL); ¡/cheque si se ha fijado la galleta o notif ($_GET [“fijar”]! = “sí”) {setcookie fijado // de la galleta (“prueba”, “prueba”, tiempo () + 60); Jefe de la página de la recarga de // (“localización: ¿checkcookies.php? set=yes”);} ¡{cheque de // si existe la galleta si (! vaciar ($_COOKIE [“prueba”])) {el eco “galletas se permite en tu browser”; } {el eco “galletas es <b>NOT</b> permitido en tu browser”; ¿}}? >

Funcionar el código arriba, y ver cuáles es la salida. Comprobar si las galletas se permiten en tu browser. Si no se permiten, entonces puedes permitirlas yendo a las opciones de tu browser. Desafortunadamente, esto es diferente de cada browser, así que no puedo darte instrucciones exactas. Pero Google puede.

Almacenar órdenes

Una característica de galletas que se falta a menudo en artículos es la capacidad a los órdenes de la historia. Las galletas se pueden utilizar para almacenar los órdenes multidimensionales, que pueden ser extremadamente útiles para almacenar datos.

Considerar el código siguiente; ¿<? phpsetcookie (“nombre [primer]”, “Dennis”, tiempo () + (60*60*24)); setcookie (“nombre [pasado]”, “Pallett”, tiempo () + (60*60*24))¿;? >

Puedes entonces exhibir estas dos galletas usando el código siguiente: ¿<? nombre del phpecho “: ”. $_COOKIE [“nombre”] [“primero”]; nombre del <br/>Last del eco “: ”. ¿$_COOKIE [“nombre”] [“pasado”];? >

La galleta “nombre” es un arsenal, y tiene valores múltiples. Puedes incluso ir más profundo y tener órdenes multidimensionales, e.g. $_COOKIE [“nombre”] [“prueba”] [“algo”] [“valor”]. Podrías almacenar órdenes enteros de datos en galletas. Pero guardarte que no almacenas demasiados datos, allí son ciertos límites del tamaño a las galletas.

En la conclusión…

Las galletas son realmente versátiles, y se pueden utilizar para los muchos de diversos propósitos. Muchos Web site utilizan las galletas, y las galletas pueden realmente hacer tu Web site personalizado. Usar las galletas en PHP no es duro en todos, y debes poder utilizarlos sin ninguna dificultad.

Antes activamente de usar las galletas en tu Web site, debes comprobar si el visitante las ha permitido en su browser. Si no hacen galletas permitir, debes o volver a dirigir a las no-galletas una versión de tu Web site, o puedes cerciorarse de que tu Web site también trabaje sin las galletas.

Puedes descargar una escritura de la muestra en http://www.phpit.net/demo/php%20and%20cookies/logger.zip, donde las galletas se utilizan en manera práctica de a (algo). En este ejemplo, hay un módulo de registración, llamado log.php y un módulo de exhibición, llamado history.php. Básicamente, incluyes el log.php en otras páginas de PHP, y entonces puedes ver history.php a las operaciones de búsqueda todas las páginas que has visto y cuantas veces. El ejemplo utiliza órdenes, y los almacena en galletas.

Los ejemplos en este artículo se pueden descargar en http://www.phpit.net/demo/php%20and%20cookies/examples.zip.

Si tienes una manera práctica realmente única de usar las galletas, dejarme por favor saber en COM nocertainty de los dennis [EN] [PUNTO]. Realmente quisiera oír hablar maneras interesantes de usar las galletas.

Article Source: http://www.articleset.com



About the Author

Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com. » Read more articles by Dennis Pallett
You are welcome to publish or reprint this article free of charge, provided: