Per forza di cose devo subito dire che questo script gira su un server Aruba con SO Windows (lo so...lo so...-_-').

Ora io vorrei fare in modo che uno possa scaricare un file solo se registrato. Di conseguenza controllo ovviamente che si aloggato e che ne abbia i diritti e poi uso questo script:

Codice PHP:
function download($file$dir)
{
    
$dim filesize($dir.$file);
    
$datafile $dir.$file;
    if(
file_exists($datafile))
    {
        
header("Content-Type: application; name=".$file);
        
header("Content-Transfer-Encoding: binary");
        
header("Content-Length: ".$dim);
        
header("Content-Disposition: inline; filename=".$file);
        
header("Expires: 0");
        
header("Cache-Control: no-cache, must-revalidate");
        
header("Cache-Control: private");
        
header("Pragma: public");

        
readfile($datafile);
    }
}            

download("prova.zip""_private"); 
Lo script funziona perfettamente (infatti indirizza bene il download al file desiderato). Pero' per fare in modo che il file NON sia raggiungibile anche inserendo l'indirizzo assoluto nel browser, vorrei che fosse messo in una cartella privata. Al che ho provato a fare questo nella cartella _private che Aruba mette a disposizione, ma niente da fare...lo script va in timeout.
Quindi vi chiedo come posso fare? Non potendo creare cartelle fuori dalla mia webdir, e non potendo usare il trucco del .htaccess, come posso fare?

thx