使用时间和日期的Php Post限制?
使用时间和日期php函数限制某人每10分钟发布一条消息的最佳方法是什么?我想让它检查是否有人在过去10分钟内发布了一些东西,如果是的话,输出一个错误,说他们不允许发布使用时间和日期的Php Post限制?,php,Php,使用时间和日期php函数限制某人每10分钟发布一条消息的最佳方法是什么?我想让它检查是否有人在过去10分钟内发布了一些东西,如果是的话,输出一个错误,说他们不允许发布 任何信息和代码示例都将非常有用,谢谢 我只想问数据库,用户的帖子是否已经“十分钟前”发布过。你会发现足够的东西来达到你的目标。另一个黄金环节是: 希望这会有所帮助,如果您打算使用CDN,这不是很好,但它又快又简单。在某人发布消息后,在会话中放置一个时间戳,然后在下次发布时检查该时间戳 if ($_SESSION['post_ti
任何信息和代码示例都将非常有用,谢谢 我只想问数据库,用户的帖子是否已经“十分钟前”发布过。你会发现足够的东西来达到你的目标。另一个黄金环节是:
希望这会有所帮助,如果您打算使用CDN,这不是很好,但它又快又简单。在某人发布消息后,在会话中放置一个时间戳,然后在下次发布时检查该时间戳
if ($_SESSION['post_time'] && $_SESSION['post_time'] <= strtotime('now -10 minutes')) {
// error
}
$_SESSION['post_time'] = time();
if($\u SESSION['post\u time']&&$\u SESSION['post\u time']]Unix使用time()为数据库post加盖日期戳。这将向您返回一个日期戳
然后将当前时间与从用户处插入数据库的时间进行比较,如下所示:
假设他们的用户id为22:
将$sql字符串推送到您的查询函数中,如果出现任何结果,它们在十分钟前就已经发布了,因此您会发出一个错误并绕过添加记录。是否应该是“现在-10分钟”?这是怎么回事,@Gebbo:我在那里看到了您的sql代码,我发布了一些比您所放置的更直观的答案。这假设一个uid这也许是一个安全的假设,但对于匿名海报,不会有uid@ChuckVose如果你接受一个非帖子,那么你需要使用$\u会话并给他们临时UID。但是你还需要将IP地址作为跟踪它们的方法。你可能还需要向他们的计算机写入cookie。但我不建议接受在POST上。有些用户与大学校园中的用户来自相同的IP,因此存在对IP认证过于严格的风险。我不会对其他用户帐户强制进行IP认证。@Chuck Vose:$\u会话的风险是,用户可以关闭浏览器并再次打开它,然后获得新的$\u会话。如果要停止flooding,你不能单靠$\u会话或$\u COOKIE。同意,很难说什么是真正最好的方法;这是一个难题。我承认会话COOKIE有一定风险,但我想尽可能完整地回答这个问题,同时承认会话并不是允许无帖子的银弹。
// returns datestamp equal to ten minutes before the current time
$threshold = time() - 600;
// see if there are any posts by the user
$sql = 'select from post_table where posted_date > '.$threshold.' and uid=22';