php - MySQL 时间戳和 PHP

标签 php mysql

阅读了大量指南后,我仍然找不到解决我的问题的解决方案..

我有一个提供下载服务的 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/

相关文章:

mysql - 文件下载后数据库中没有数据

php - Joomla 3.x 中的 MySQL 查询慢得离谱

MySQL 查询 : Trim a string in an entry from some start string to some end string?

php - 将 PHPUnit 与 Selenium 结合使用,如何测试元素是否包含某些内容?

PHP - 对象实例化上下文 - 奇怪的行为 - 是 PHP 错误吗?

php - Drupal 8 PDO 准备语句绑定(bind)值错误

php - Laravel collectivehtml 安全路由或 url

PHP 更新查询未接收页面中已定义的变量

php - 修改/添加额外的东西到 PDO bindParam()?

php - 通过同一页面上的 php 表单插入 mysql 数据?