我花了好几个小时寻找解决方案,要么我找不到合适的词来描述我在搜索引擎中的需求,要么就是我不擅长找东西。
情况是这样的: 我目前正在制作一个网站,我有一个部分,访问者可以在其中发布消息,有点像“留言簿”。但是,我想将一个 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/