我认为你试图避免强迫用户在你的网站上注册,而你试图用常见的方式(cookies、ip ...)跟踪每个访问者的带宽是不切实际的。所以,最好的方法(在我看来,当然有很多改进的解决方案)是制作一个简单的注册表单,比如姓名、密码和电子邮件,在每封电子邮件中放置一个激活系统,以保护您的网站免受用户的侵害,现在每个用户登录并尝试下载文件,您按以下步骤处理他的请求:
1) 用户对文件名.pdf 的请求(检查其可用性和大小(重要))。
2) 检查用户带宽:
$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";
数据库应该是这样的:
用户:
ID_U int(key, auto increment), Name varchar(25), email varchar(255), password varchar(32), Bandwith float
统计:
ID_S int(key, auto increment), LastDownload time, ID_U integer
注意:
每次用户下载文件时,您都会为正确的用户更新带宽行,以便稍后您可以检查特定用户是否达到其限制。您还必须在每 24 小时后重置它。
这是一个通用的解决方案,许多人认为必须检查,例如计数器带宽必须每 24 小时重置一次。