si potrebbe fare anche con una variabile in sessione e basta.
la funzione chdir di php ti permette di impostare una cartella di lavoro dove il sistema andrà ad operare.
la mia idea:
se la variabile è true imposti con chdir la cartella dei files, viceversa non lo fai.
quando continuerai con il tuo codice verificherai giustamente se il file esiste e lo farai impostando i path in maniera relativa alla cartella corrente.
in questo modo la ricerca del file fallirà quando la variabile in sessione è false e quindi restuitirai un errore.
un esempio
Codice PHP:
<?php
/*
sono in /var/application
i files sono in /var/resources
il file richiesto è /var/resources/files/pdf/09432.pdf
*/
//la directory corrente per eventualmente tornare al punto di partenza
$current_path=getcwd();
if($_SESSION['user_download'] == true){
chdir('../resources');
}
if(is_file('./files/pdf/09432.pdf') && is_readable('./files/pdf/09432.pdf')){
//download del file
}
else{
//errore, redirect o altro
}
//nel caso in cui vuoi tornare alla cartella di origine DA CUI ti sei spostato
chdir($current_path);
?>
olyyyyyyyyyyy