$timeout = 3600; // один час
$filesdir = "downloads/"; // слеш в конце
//
$secret = md5((int)(time() / $timeout)); // всегда целое число, меняется раз в $timeout секунд;
if( isset($_GET['key']) ) {
if( ($_GET['key'] == $secret) && // проверка ключа
strlen($_GET['fn']) && file_exists($filesdir.$_GET['fn']) ) { // проверка файла
readfile($filesdir.$_GET['fn']);die; // читаем файл
} else {
header ( 'HTTP/1.1 404 Not Found' ); // файл не найден
die;
}
}
Использование:
<a href="?fn=file.doc&key=<?PHP echo $secret;?>">Скачать file.doc</a>