place your files below the web root. then use this function to basically force feed the files with the passthru function.
PHP Code:
<?
function download($file)
{
$filesize = filesize($file);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
header("Cache-control: private");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream");
header("Content-Length: $filesize");
header("Content-Transfer-Encoding: binary");
$fh = fopen($file, "rb");
fpassthru($fh);
}
?>