如何强制用户在提交另一封电子邮件前等待60秒?
我可以使用session
和time()
。欢迎任何代码示例。
谢谢。
答案 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来存储上次提交时间。这是一个简单的比较,并在此之后采取行动。