Curso POO PHP Cookies

De Manuais Informática - IES San Clemente.
Revisión del 10:06 15 jul 2013 de Vlourido (discusión | contribs.) (→‎Cookies)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Cookies

Unha cookie é un ficheiro de texto que un sitio web garda no ámbito do usuario do navegador. O seu uso máis típico é o almacenamento das preferencias do usuario (por exemplo, o idioma en que se deben mostrar as páxinas), para que non teña que volver indicalas a próxima vez que visite o sitio.

En PHP, para almacenar unha cookie no navegador do usuario, podes utilizar a función setcookie. O único parámetro obrigatorio que tes que usar é o nome da cookie, pero admite varios parámetros máis opcionais. O segundo parámetro é o seu valor e o terceiro é a data de caducidade da cookie. En caso de non figurar a data de caducidade, a cookie eliminarase cando se peche o navegador (se unha vez almacenada unha cookie no navegador queres eliminala antes de que expire, podes utilizar a mesma función setcookie pero indicando unha data de caducidade anterior á actual).

Por exemplo, se queres almacenar nunha cookie o nome de usuario que se transmitiu nas credenciais HTTP (é só un exemplo, non é en absoluto aconsellable almacenar información relativa á seguridade nas cookies ), cun prazo de caducidade de unha hora, podes facer:

setcookie("nome_usuario", $_SERVER['PHP_AUTH_USER'], time()+3600);

Empregando o cuarto parámetro tamén se poden aplicar restricións ás páxinas do sitio que poden acceder a unha cookie en función da ruta. Neste caso indicarase a ruta dentro do servidor na que a cookie estará dispoñible. Se se utiliza '/', a cookie estará dispoñible na totalidade do sitio. Se se indica unha ruta como '/privado/', a cookie só estará dispoñible dentro do directorio /privado/ e todos os seus subdirectorios.

setcookie("nome_usuario", $_SERVER['PHP_AUTH_USER'], time()+3600, "/privado/");

As cookies transmítense entre o navegador e o servidor web utilizando os encabezados do protocolo HTTP. Concretamente, cando en PHP facemos un setcookie, o servidor envía un encabezado Set-Cookie ao navegador. Por iso, as sentenzas setcookie deben enviarse antes de que o navegador mostre información algunha en pantalla.

O proceso de recuperación da información que almacena unha cookie é moi simple. Cando accedes a un sitio web, o navegador envíalle de forma automática todo o contido das cookies que almacene relativas a ese sitio en concreto. Isto faise novamente empregando os encabezados HTTP, neste caso o encabezado Cookie.

Dende PHP podes acceder a esta información por medio do array $_COOKIE.

echo 'Ola ' . $_COOKIE["nome_usuario"] . '!';

Sempre que utilices cookies nunha aplicación web, debes ter en conta que en última instancia a súa dispoñibilidade está controlada polo cliente. Por exemplo, algúns usuarios deshabilitan as cookies no navegador porque pensan que a información que almacenan pode supoñer un potencial problema de seguridade. Ou a información que almacenan pode chegar a perderse porque o usuario decide formatar o equipo, acceder empregando outro navegador, ou simplemente eliminalas do seu sistema.


--Víctor Lourido 21:00 13 jul 2013 (CEST)