HTTP / 1.1 303重定向以避免刷新时重新提交

时间:2012-05-03 10:29:53

标签: php redirect refresh http-1.1

我需要你的帮助。  我正在我的网站上编写评论功能,我正在尝试将垃圾邮件减少到最低限度。我的问题是,当用户/机器人(可能)提交评论时,我有这个代码来做HTTP /1.1 303重定向到同一页面,以便当用户尝试刷新页面时,之前的注释不会重新提交。

这是否足以减少垃圾邮件。

感谢您的时间,耐心和答案。我非常感激。

          header("HTTP/1.1 303 See Other");
       header("Location: http://127.0.0.1/     main/forum/

3 个答案:

答案 0 :(得分:0)

这对提交表单的垃圾邮件或机器人没有任何影响。唯一有用的是通过点击F5(刷新页面)来避免意外重新提交,尽管通常使用301或302重定向。

我现在阅读on Wikipedia

  

HTTP响应状态码303请参阅“其他”是将Web应用程序重定向到新URI的正确方式,尤其是在执行HTTP POST后。

表明303在您的情况下是正确的HTTP响应。但仍然大多数人可能使用302。

答案 1 :(得分:0)

我认为不会帮助您实现目标,reduce spamming您可以执行以下操作

一个。检查页面是否已经刷新然后重定向,这已经在这里进行了广泛讨论:参见

PHP refresh

B中。为防止正确泛洪需要限制每个IP地址的秒数请求参见

Prevent PHP script from being flooded

修改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 () );
}

答案 2 :(得分:0)

简短回答:不。

答案很长:不,重定向与垃圾邮件无关。垃圾邮件发送者正在使用完整的HTTP协议,其中各种状态代码如303 See Other是其中的一部分。任何HTTP客户端 - 垃圾邮件发送者与否 - 都能够处理这些问题。

实际上有助于防止发送垃圾邮件的方法是显示一个辅助页面,该页面再次要求发布内容(如预览)。大多数垃圾邮件机器人都没有这样做,而且它也是用户友好的。