阅读了无用的指南后,我仍然无法找到解决问题的解决方案..
我有一个download.php页面提供下载服务。 我创建了一个名为" downloads"的新mysql表。我想存储下载或其他什么。
我想要对时间戳做什么基本上是检查该IP是否已在过去24小时内下载,如果没有,请将其添加到下载表中以供下次检查。
甚至更简单:将每个downloads.php调用添加到下载表,保存IP地址和时间戳。在下载之前检查该时间戳,如果用户IP存在于DB中,请执行x。
有什么建议吗?
注意:存在file.php。用户访问file.php / filexxx等页面并单击下载。 download.php然后执行一系列检查并提供文件。因此,如果用户在过去24小时内下载了x文件,我想限制下载。我目前正在使用cookies,这不是一个最佳的解决方案。有什么帮助吗?!
非常感谢!!
答案 0 :(得分:0)
使用Mysql TimeDiff函数获取总小时数.IF超过24小时。再次插入作为新计数。还要将IP验证与您的查询结合起来。
SELECT TIMEDIFF(now(),first_downloaded_time) ,ip from downloads where ip='$ip'
first_downloaded_time是存储时间戳的列;
运行上面的查询,您将得到时间状态,例如' 23:43:44' 使用substr()方法只获得几小时
substr('23:43:44',0,2);//this will output 23
使用此值插入下载ip,如果大于23或没有值(对于较新的条目)