【发布时间】:2011-12-10 11:04:33
【问题描述】:
在我的新网站上,我想通过将用户限制为每小时最多 2 个帖子来减少垃圾邮件(这可能会更改为允许更多,但现在是 2 个)我设计了一种使用 cookie 的方法,但是,出于某种原因该网站没有设置 cookie,这是我的 cookie 代码:
$sql = "INSERT INTO mysql_table (timestamp,entry,uid,allowcomments) VALUES ('$timestamp','$entry','".rndTxt(16)."','$allowcommenting')";
$result = mysql_query($sql) or print ("Can't insert into table.<br />" . $sql . "<br />" . mysql_error());
if ($result != false) {
if(isset($_COOKIE['AnonPost']))
{
$hour = time() + 3600;
setcookie("AnonPost", "2", $hour);
}
else {
$hour = time() + 3600;
setcookie("AnonPost", "1", $hour);
}
print "<meta HTTP-EQUIV='REFRESH' content='0; url=index.php'>";
}
mysql_close();
然后后面的 if/else 语句检查它是否存在,以及值是什么(如果它不存在,他们会正常查看站点,如果存在并且 val=1 则显示一条消息说只剩下一个帖子,如果 val=2,他们会收到一条消息,说他们这个小时的帖子已经用完了。)
这适用于我的本地主机,但不适用于网站本身 (http://aviatex14.co.uk/anonpost/) 有什么想法吗?
除此之外,我知道这不是限制帖子的最佳方式,所以,谁能帮我限制表单提交,或者就我的 cookie 问题给我建议?
【问题讨论】:
-
您可能想寻找更好的方法来处理垃圾邮件。限制每小时发布的帖子比垃圾邮件发送者更会阻碍真实用户。
-
另外,cookie 可以很容易地删除。
-
嗯,我想到了,但这是暂时的,因为我们整理了更大的东西。我想知道,您是否认为将其限制为更像您必须在每次发布后等待 60/120 秒才能再次发布的 php 会话会起作用?更重要的是阻止人类垃圾邮件发送者持续发帖
-
你怎么知道他们是人类而不是机器人?
-
我已经有一个系统可以阻止机器人,那些突破过滤器的可以单独处理,但是人类可以完成反垃圾邮件,然后发布,并且可以继续这样做。这就是我需要限制的。
标签: php mysql forms cookies limit