2011-03-31 142 views
0

如何强制用户在提交另一封电子邮件之前等待60秒?可以使用sessiontime()。任何代码示例都是受欢迎的论坛提交60秒时限

谢谢。

回答

0

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

+0

对不起,但这并没有帮助LOL – EMC 2011-03-31 11:52:19

+1

@EMC:这没有帮助,有什么好笑的呢?我猜想你正在寻找一段完整的代码,而不仅仅是解释如何去做。这不是火箭科学。 – Lazarus 2011-03-31 11:54:34

+0

确切的:-)我正在寻找代码示例。 – EMC 2011-03-31 12:02:12

1

如果你把你的表单的发送按钮的onclick =“禁用(事件)”,然后提供这个脚本片段:

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

谨防然而,这仅实现在客户端(浏览器)侧的检查。很容易被恶意用户黑掉。您需要在服务器端实施类似的检查。

+0

这是非常好的和有用的,但它的JavaScript。谢谢,但我需要PHP :) – EMC 2011-03-31 11:55:38

+1

您的问题被标记为'javascript' – 2011-03-31 11:56:05

+1

哦,对不起。我以为我会推荐PHP :(其实我是这么做的,它被编辑的东西是什么? – EMC 2011-03-31 11:57:40

2

Cookies可以使用特殊附件进行编辑,所以我更喜欢您使用会话microtime。类似的东西:

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

// ....... 

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

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

+0

是的,类似这样的:-)你能举出更完整的例子吗?它呢?例如与回声一样。请等待60秒再次发送。谢谢。 – EMC 2011-03-31 12:13:21

+0

完美,谢谢Robik。将尝试它,让你知道,如果它为我工作=) – EMC 2011-03-31 12:18:07

+0

@EMC这是简单的其他sttement ....但如果你不能... [0123]修改] – Robik 2011-03-31 12:18:20