gpt4 book ai didi

php - 防止访问者每天发布超过 2 个帖子的方法(PHP MySQL)

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:46 24 4
gpt4 key购买 nike

我花了好几个小时寻找解决方案,要么我找不到合适的词来描述我在搜索引擎中的需求,要么就是我不擅长找东西。

情况是这样的:我目前正在制作一个网站,我有一个部分,访问者可以在其中发布消息,有点像“留言簿”。但是,我想将一个 IP 地址限制为每天 2 个帖子。一开始我认为这很容易,只需将 IP 地址、日期和时间以及所有其他数据插入 mysql 表,然后比较每个 ip 的时间和日期。诸如此类……然后,当我着手处理它时,脑海中浮现出很多问题。如果 IP 在几天内发布了超过 2 条消息,我将如何比较这些条目?您甚至如何开始准确比较日期和时间?用于比较的最佳时间和日期格式是什么?有没有更好的方法,例如可以比较的自动过期数据?等等.. 对不起,如果这看起来像一个简单的任务,但我很难找到答案。尝试用谷歌搜索所有内容,例如“mysql php 时间限制”、“php mysql 防止垃圾邮件计时器”、“php mysql 计时器如 megavideo”等。

澄清一下,我需要一个好的方法来防止访问者每天发布超过 2 条消息。这是一种“留言簿”,任何访问者都可以张贴。没有登录。

提前致谢!

最佳答案

创建一个名为 exceptions 的表,结构为 id, ip, date

当用户发布内容时,执行如下查询:

$ip = $_SERVER['REMOTE_ADDR'];
$query = "insert into exceptions set ip = '{$ip}',date = 'NOW()'";

在让用户发布内容之前添加:

$ip = $_SERVER['REMOTE_ADDR'];
$count = mysql_num_rows(mysql_query("select count(*)
from exceptions where ip = '{$ip}'
and date > DATE_SUB(NOW(), INTERVAL 24 HOUR)"));

if($count> 2) {
echo 'You have exceeded posting limits, please try again in 24 hours';
exit;
}

关于php - 防止访问者每天发布超过 2 个帖子的方法(PHP MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5816804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com