拜托,我需要你的帮助。 我正在我的网站上编写评论功能的脚本,并且我正在尝试将垃圾邮件减少到最低限度。我的问题/问题是,当用户/机器人(可能)提交评论时,我有此代码执行HTTP/1.1 303重定向到同一页面,以便当用户尝试刷新页面时,以前的评论不会重新提交。
这是否足以减少垃圾邮件。
感谢您的时间,耐心和答案。我非常感激。
header("HTTP/1.1 303 See Other");
header("Location: http://127.0.0.1/ main/forum/
我认为不会帮助你实现你的目标,reduce spamming
你可以做到以下几点
A.检查页面是否已刷新然后重定向,这已经在这里进行了广泛的讨论:请参阅
PHP 刷新
二.为了防止适当的泛洪需要限制每个 IP 地址的请求秒数,请参阅
防止 PHP 脚本被淹没
编辑 1
您要求的非 OOP 版本:
$memcache = memcache_connect ( 'localhost', 11211 );
$runtime = memcache_get ( $memcache, 'floodControl' );
if ((time () - $runtime) < 2) {
die ( "Die! Die! Die!" );
}
else {
echo "Welcome";
memcache_set ( $memcache, "floodControl", time () );
}
这对提交表单的垃圾邮件或机器人没有影响。唯一有用的是通过按 F5(刷新页面)来避免意外重新提交,尽管通常通过 301 或 302 重定向来完成。
我现在在维基百科上读到:
HTTP响应状态代码 303 请参阅其他是将 Web 应用程序重定向到新 URI 的正确方法,尤其是在执行 HTTP POST 之后。
这表明 303 是您遇到的正确 HTTP 响应。但大多数人可能仍然使用302。
简短回答:不。
长答案:不,重定向与垃圾邮件无关。垃圾邮件发送者正在使用完整的HTTP协议,其中各种状态代码(如303 See Other)是其中的一部分。任何HTTP客户端 - 垃圾邮件发送者与否 - 都能够处理这些。
真正有助于防止垃圾邮件的是显示一个辅助页面,该页面再次要求发布内容(如预览)。大多数垃圾邮件机器人都无法做到这一点,而且它也是用户友好的。