Creando cookies en PHP, porque la ruta es importante

En las programación web, las cookies son un elemento muy utilizado desde hace años. Mediante estas podemos establecer por ejemplo las preferencias de nuestro visitante, o quizás controlar que alguien que ya haya votado una encuesta no pueda hacerlo una segunda vez (al menos desde el ordenador y siempre y cuando no resetee las cookies de su navegador). Siguiendo la definición del lenguaje php para crear una cookie (información completa aquí) deberíamos usar la función setcookie que tiene una forma similar a esta:

setcookie(name,value,expire,path,domain,secure);

Donde name, es el nombre que le asignamos a la cookie, value el valor, expire indicará el tiempo que tardará hasta que se considere caducada, path la ruta donde se crea la cookie,  domain indicará el dominio para el que es válida la cookie que hemos creado y secure es por si queremos limitar la cookie a conexsiones seguras https.

En esta entrada queríamos centrarnos en path. Y es que es muy habitual crear una cookie usando solo setcookie(name, value, expire); Esta instrucción funcionará siempre y cuando la cookie se use en páginas que se encuentren en el mismo directorio que la página desde donde se ha creado, sin que sirva en otros directorios. Por ejemplo, imaginemos que tenemos una carpeta de formularios dentro de nuestro directorio raíz, donde tras acceder a uno de estos, se crea una cookie que deberíamos poder leer desde el directorio raíz. Si no establecemos el path de la cookie, una vez el formulario nos reenvíe a una página del directorio raíz, veremos que no podemos acceder al contenido de la cookie. Así pues deberíamos usar algo como setcookie(«mi_cookie»,»si»,time+365000,»/»); para que cuando luego desde nuestras páginas del directorio raíz podamos leer el contenido de la cookie creada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.