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