Cookies en PHP
Las cookies son un mecanismo por el que se almacenan datos en el navegador para monitorizar o identificar a los usuarios que vuelven al sito web.
Es un pequeño fichero que se almacena en nuestra computadora u ordenador.
En PHP las cookies se pueden configurar con las funciones setcookie() o setrawcookie().
setcookie() define una cookie para ser enviada junto con el resto de las cabeceras de HTTP.
Las cookies deben ser enviadas antes de que el script genere ninguna salida (es una restricción del protocolo).
Ésto implica que las llamadas a esta función se coloquen antes de que se genere cualquier salida, incluyendo las etiquetasyal igual que cualquier espacio en blanco.
Iniciar cookies en PHP
setcookie(“NOMBRE”, “aprendiendo php”);
Todos los argumentos exceptuando el argumento name son opcionales.
name
El nombre de la cookie.
value
El valor de la cookie. Este valor se guarda en el computador del cliente; no almacene información sensible. Asumiendo que el name es ‘cookiename’, este valor se obtiene con $_COOKIE[‘cookiename’].
expire
El tiempo en el que expira la cookie. Es una fecha Unix por tanto está en número de segundos a partir de la presente época. En otras palabras, probablemente utilizará la función time() más el número de segundos que quiere que dure la cookie. También podría utilizar la función mktime(). time()+60*60*24*30 configurará la cookie para expirar en 30 días. Si se pone 0, o se omite, la cookie expirará al final de la sesión (al cerrarse el navegador).
path
La ruta dentro del servidor en la que la cookie estará disponible. Si se utiliza ‘/’, la cookie estará disponible en la totalidad del domain. Si se configura como ‘/foo/’, la cookie sólo estará disponible dentro del directorio /foo/ y todos sus sub-directorios en el domain, tales como /foo/bar/. El valor por defecto es el directorio actual en donde se está configurando la cookie.
domain
El dominio para el cual la cookie está disponible. Establecer el dominio a ‘www.example.com’ hará que la cookie esté disponible en el subdominio www y subdominios superiores. Las cookies disponibles en un dominio inferior, como ‘example.com’, estarán disponibles en dominios superiores, como ‘www.example.com’. Los navegadores antiguos que aún implementan la referencia obsoleta » RFC 2109 pueden necesitar un . al inicio para comparar todos los subdominios.
secure
Indica que la cookie sólo debiera transmitirse por una conexión segura HTTPS desde el cliente. Cuando se configura como TRUE, la cookie sólo se creará si es que existe una conexión segura. Del lado del servidor, depende del programador el enviar este tipo de cookies solamente a través de conexiones seguras (por ejemplo, con $_SERVER[“HTTPS”]).
httponly
Cuando es TRUE la cookie será accesible sólo a través del protocolo HTTP. Esto significa que la cookie no será accesible por lenguajes de scripting, como JavaScript. Se ha indicado que esta configuración ayuda efectivamente a reducir el robo de identidad a través de ataques XSS (aunque no es soportada por todos los navegadores). pero esa afirmación se disputa a menudo. Agregado en PHP 5.2.0. Puede ser TRUE o FALSE
Acceder a las cookies
PHP permite de manera fácil acceder a las cookies.
$_COOKIE[‘NOMBRE_COOKIE’];
Eliminando cookies
Podemos borrar las cookies de dos maneras, incluso utilizando la función setcookie(), seria como redefinir toda la cookie, excepto el nombre.
Otra manera comun de borrar las cookies, es “seteando” el tiempo de expiracion una hora antes, de la hora actual.
// set the expiration date to one hour ago
setcookie(“nombre”, “”, time()-3600);