хмм... а если, например, делать через сессии, то можно всё это вместе удобно увязать... напрмер, вот так сделать:
if (!isset($_SESSION[\'links\']))
$_SESSION[\'links\']=array();
if (!isset($_SESSION[\'downloaded\']))
$_SESSION[\'downloaded\']=array();
есть какой-то списко файлов
$filesist=array(\'file.zip\',\'file1.zip\'); ...
генерим для каждого уникальный хеш, каждый раз разный, при этом не даём файлов, которые в скачке
foreach($filelist as $file)
if (!in_array($file,$_SESSION[\'downloaded\']))
$_SESSION[\'links\'][md5(microtime)]=$file;
выдаём линки с актуальными хешами, файл прячем
foreach($_SESSION[\'links\'] as $hash=>$real)
echo \'file\';
потом в каком-нить get.php перехватываем ту же сессию, и
if (isset($_SESSION[\'links\'][$_SERVER[\'QUERY_STRING\']]))
{
пишем что качается
$_SESSION[\'downloads\'][]=$_SESSION[\'links\'][$_SERVER[\'QUERY_STRING\']]);
и убираем хеш
unset($_SESSION[\'links\'][$_SERVER[\'QUERY_STRING\']]);
тут же можно провирать count(downloaded) и всё такое
}
хотя ты это прочел уже, наверное..))