Pero .. el archivo quien lo "entrega" .. ? ..
Osease, el archivo a descargar tan solo es un link que apunta a (ejemplo:)
http://www.tal.tal/nose/archivos/elarchivo.zip
Si es así como "validas" la descarga de tu archivo .. en tu "caché" del navegador va a quedar esa ruta hacia ese archivo directo .. así que no pasa por tu página X que chequeas el valor de la cookie ...
La solución para esto es que sea "PHP" quien entregue el archivo desde otro directorio Fuera del "documen_root" o protegido para que no sea accedido mas que desde "localhost" para que lo pueda leer sólo PHP.
funciones como:
readfile() y header(con las cabeceras HTTP correspondientes) te facilitaran esta taréa de que "PHP" sea el que lea el archivo y lo entregue para descargar. Por ende, si no se pasa por ese "script" en PHP (en el cual validas por cookies o lo que quieras a tu usuario) no va a poder "linkear" el archivo directo .. pues quedaría fuera de:
http:// ... (de eso se trata que sea PHP quien lo lea del sistema de archivos del servidor ..)
Un saludo,