Je pense que vous essayez d'éviter de forcer l'utilisateur à enregistrer dans votre site, alors que vous essayez de suivre la bande passante par des visiteurs avec est peu pratique avec les moyens communs (cookies, ip ...). Donc, la meilleure façon (à mon avis, bien sûr il y a beaucoup de solutions améliorées) est de faire un simple formulaire d'inscription, nom, mot de passe et email, mettre un système d'activation par mail pour protéger votre site d'utilisateur, maintenant chaque utilisateur connecté et essayé de télécharger un fichier, vous traitez sa demande dans les étapes suivantes:
1) demande d'utilisateur pour le nom de fichier.pdf (vérifiez sa disponibilité et la taille (important)).
2) vérifier la bande passante de l'utilisateur:
$query = sql_query("SELECT Bandwidth, LastDownload FROM Users, Stats WHERE USER_ID=5");
$result = sql_fetch($query);
if ($result['Bandwidth'] < 50M)
showDownloadLink();
else if($result['LastDownload'] - currentTime() !=0)
echo "please wait to the next 24h";
Database devrait ressembler à ceci: utilisateurs:
ID_U int(key, auto increment), Name varchar(25), email varchar(255), password varchar(32), Bandwith float
Stats:
ID_S int(key, auto increment), LastDownload time, ID_U integer
Note: Chaque utilisateur de temps télécharger un fichier , vous mettez à jour la ligne de bande passante pour le bon utilisateur, donc plus tard, vous pouvez vérifier si un utilisateur particulier atteint sa limite ou non. Vous devez également le réinitialiser après chaque 24H.
Il s'agit d'une solution générique dont beaucoup pensent qu'elle doit être vérifiée, comme la bande passante du compteur doit être réinitialisée toutes les 24H.
Merci pour les réponses. Je n'ai pas un système d'utilisateur et il semble un peu au-delà de la portée/taille du site, je vais le garder à l'esprit cependant. Je suppose que cela laisse des restrictions SESSION/IP (malgré les avertissements de Digital Precision). En termes de code de psuedo, quelqu'un pourrait-il me donner une idée? Im penser download.php? File = 'foo.pdf' download.php vérifie IP, reprend SESSION, obtient la taille du fichier compare à la limite et permet/refuse le téléchargement. Mais comment puis-je effacer la SESSION après une journée? Le reste est-il sensé? – rwb