2009-09-13 10 views
1
if ($_SERVER['REQUEST_METHOD']=='GET' && $_GET['download']==='1') 
{ 
    $handle = fopen('lastdownload.txt','rw'); 
    $date = @fread($handle,filesize('lastdownload.txt')); 

    if (time() - 30 * 60 > $date) 
    { 
    fwrite($handle,time()); 
    header('Content-type: application/zip'); 
    header('Content-Disposition: attachment; filename="dwnld_'.date('d_m_Y_H_i',filemtime('download.zip')).'.zip"'); 
    readfile('download.zip'); 
    } 

    exit; 
} 

Salut tout le monde, j'ai un problème sur la limitation du nombre de téléchargements.Limite de téléchargement compte avec le fichier texte en PHP

Je souhaite limiter le nombre de téléchargements.

Si la demande de quelqu'un le fichier avec? Télécharger = 1

Il vérifie l'heure et le temps dans le fichier

Si 30 minutes, avant le dernier téléchargement, il vous permet de télécharger à nouveau, sinon il juste des sorties.

Une aide s'il vous plaît?

Merci.

+1

Question n'est pas claire. Votre code semble raisonnablement correct. Il devrait permettre le téléchargement du fichier seulement toutes les 30 minutes. Puisque vous stockez simplement le temps de téléchargement dans un fichier texte, cet incrément de 30 minutes s'appliquera à tous les utilisateurs. Donc, si Joe télécharge le fichier à 01:00, et Suzy essaie à 01:20, Suzy n'obtiendra pas le fichier. Peut-être que vous devriez éditer votre question et être plus précis sur ce qui ne fonctionne pas, ou ce que vous n'êtes pas sûr de savoir comment faire. – timdev

+0

Seulement 1 personne utilisera ce fichier, alors Only Joe le téléchargera, aucun autre utilisateur comme Suzy. Le code ne fonctionne pas. Ce n'est pas écrire dans le fichier. C'est pourquoi je peux télécharger à tout moment. lastdownload.txt est toujours vide. –

+0

Il est possible que les fonctions d'E/S de fichiers en PHP soient désactivées pour des raisons de sécurité (voir http://www.php.net/manual/fr/ini.sect.safe-mode.php#ini.disable-functions –

Répondre

0

"rw" n'est pas un mode valide pour fopen. Vous devez utiliser « r + » ou « x + » et revenir en arrière le pointeur de fichier après la lecture:

$handle = fopen('lastdownload.txt','r+'); 
$date = @fread($handle,filesize('lastdownload.txt')); 
rewind($handle); 
0
if(fileatime("lastdownload.txt")>=300) 
    { 
    //Access OR File Download Code Here 
    } 
Questions connexes