http://php.net/manual/tr/function.uniqid.php
Bu safyadaki fonksiyonu kullanıyorum ben hocam.
$guclu_token = md5(uniqid(mt_rand(), true));
Sana eşdeğersiz bir token üretiyor sistem. Bunu da şöyle kullanabilirsin;
indir.php?token=rastgeleuretilendeger
$deger = $_GET['token'];
olarak alırsın ve tüm indirme işlemlerini db'ye kayıt edersin. Indır.php'ye girildiğinde veya indirme sayfasına girildiğinde $deger değişkeninin kullanılıp, kullanılmadığına bakarsın. Eğer kullanılmadıysa ve geçerliyse (o dosyayı tanımlıyorsa) indirme işlemine izin verir sistem.
En basitinden bu algoritma çok daha da geliştirilir yani. Umarım yardımcı olmuşumdur.