论坛提交60秒的时间限制

时间:2011-03-31 11:47:44

标签: php forms

如何强制用户在提交另一封电子邮件前等待60秒?

我可以使用sessiontime()。欢迎任何代码示例。

谢谢。

3 个答案:

答案 0 :(得分:2)

Cookie可以使用特殊插件进行编辑,因此我希望您使用会话 microtime 。这样的事情:

$delay = 60000000; // Set delay [60 seconds]

// .......

if(microtime() >= $_SESSION['lastsent'] + $delay)
{
   send();
   $_SESSION['lastsent'] = microtime();
}
else
{
   echo 'Please wait 60 seconds';
}

代码可能不好,因为它已写在这里。

答案 1 :(得分:1)

如果你在表单的发送按钮上输入onclick =“disable(event)”,那么提供这个脚本片段:

function disable(event) = {
  event.currentTarget.setAttribute("style", "display:none");
  window.setTimeout(function() {
     event.currentTarget.setAttribute("style", "display:inline");
  }, 1000 * 60);
}

请注意,这只会在客户端(浏览器)端执行检查。它很容易被坏用户攻击。您需要在服务器端执行类似的检查。

答案 2 :(得分:0)

使用会话状态(不确定如何在PHP中完成,但这不是PHP问题)或cookie来存储上次提交时间。这是一个简单的比较,并在此之后采取行动。