Te remito a q leas las FAQs y su indice. Directamente una posible respuesta la tienes
aquí.
En la variable del archivo a descargar la puedes pasar por url y recogerla con $_GET o usando sesiones para q las descarguen desde los enlaces de tu propia página. Si colocas los archivos fuera de la parte pública de tu web y pones como directorio por defecto de descargas ese en el script nadie podrá acceder directamente (siempre y cuando uses sesiones para obligar al usuario a descargarlo desde tu sitio web, si es x url poniendo el nombre del archivo le bastará).
Saludos.