首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中限制用户每小时的评论/请求

如何在php中限制用户每小时的评论/请求
EN

Stack Overflow用户
提问于 2011-12-29 22:54:16
回答 5查看 1.1K关注 0票数 1

我有一个网站,有几个请求选项(例如,添加照片,添加评论)。我想限制每个特定时间的使用请求,例如,他不能在一小时内发布超过5条评论,他每小时不能添加超过5张照片等。

我的想法是在每次发送表单操作时创建/更新会话变量,因此它的总和为5(如果会话变量为== 5,它将拒绝每个表单上的操作)。我的想法在我看来似乎很好,但我就是找不到在初始化后1小时重置某些会话变量的方法)。期待任何想法

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-29 23:01:19

在SQL中使用简单的SQL命令,您可以获得过去一小时内完成的项目数,因此不需要使用会话变量(如果用户重置它的会话,该变量将会终止)

查看当前小时中某个特定元素的“发布”次数

代码语言:javascript
复制
SELECT
    COUNT(*) 
FROM 
    my_elements_table 
WHERE 
    HOUR(createdon) = HOUR(NOW()) 
    AND DATE(createdon) = CURDATE()
    AND createdby = the_user_you_are_checking

检查特定元素在过去一小时内的“past”数量

代码语言:javascript
复制
SELECT
    COUNT(*) 
FROM 
    my_elements_table 
WHERE 
    DATE_ADD(createdon, INTERVAL 1 HOUR) > NOW() 
    AND createdby = the_user_you_are_checking

显然,根据您的数据库字段和表调整SQL,但您应该有一个良好的起点。

票数 3
EN

Stack Overflow用户

发布于 2011-12-29 23:00:24

我猜你在数据库中存储了关于评论和照片的数据,至少你必须对评论做这件事,但我猜你对照片也是这样做的。在这种情况下,我将保存评论/照片创建时间的时间戳和创建它的用户的ID,以及其他信息。

当用户尝试添加另一张照片或评论时,您可以计算该特定用户在过去60分钟内在数据库中创建的评论和照片的数量。如果超过5,则丢弃请求,否则添加信息。

票数 1
EN

Stack Overflow用户

发布于 2011-12-29 23:00:26

如果你有用户,你会把他们存储在数据库中,不是吗?那么为什么不把他们最后一次评论的内容存储在数据库中,并用它来检查他们是否可以评论呢?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8669338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档