每30秒只有一个传出链接

时间:2011-03-25 20:10:32

标签: php

我现在正在一个有很多外部链接的网站上工作。所有链接都通过一个名为:out.php

的PHP文件

因此,正常的外部链接类似于:out.php?url = http://www.google.com

我的问题是如何阻止人们一次点击多个链接?我希望他们在30秒内只点击一个链接,例如。如果他们点击另一个链接,则应该出现一个错误,告诉他们等待其余几秒钟,然后再访问另一个页面。

使用Cookie不是一种选择,因为它们仍然可以禁用cookie。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

保存点击某处的网址(文件,数据库,...)以及上次点击时的时间戳。然后,对于每次单击,检查给定URL的时间戳(如果存在)。如果它在30秒内窗口忽略请求,否则使用请求并更新时间戳字段。如果您需要为每个用户分隔它,也可以保存IP(如果有的话,也可以保存用户ID)。

答案 1 :(得分:0)

您可以说您需要Cookie才能查看该网站    您可以使用会话cookie:
   如果他们查看页面A:

   if(!isset($_SESSION['A']))
       $_SESSION['A'] = time();
   else {
       if((time() - $_SESSION['A']) <= 30000){
            $_SESSION['A'] = time();
            die('YOU JUST WERE HERE 30 SECONDS AGO! TRY AGAIN LATER!');
       }
   }
   $_SESSION['A'] = time();

或类似的东西,上面的代码不完善