假设我创建了一个简单的html联系表单,并将一些数据(来自输入框的电子邮件)发送到php脚本。在这个php脚本中,mailto()函数用于使用$ POST变量中提交的电子邮件addy向用户发送电子邮件。
我希望我的php脚本检查执行脚本的人是否最近完成了它。
(例如,蒂姆使用表格,它给他发了一封电子邮件。5分钟后他不小心再次提交表格,我的脚本停止执行mailto()函数因为蒂姆今天已经使用了表格一次(20分钟无论如何) ))
答案 0 :(得分:2)
每次发送邮件时,解决方案都是记录(通常是MySQL或SQLite数据库中的表):
然后,当您提交表单时,如果当前用户有最近的行,则必须检查该数据库的表 - 如果没有,则发送邮件。
答案 1 :(得分:1)
首次使用mailto()
提交邮件后,将Cookie设置为在20分钟内(或其他任何时间)过期。再次提交时检查cookie,如果有效且有效,请阻止发送。
编辑:查看有关用户删除自己的Cookie的评论。这并不妨碍它。
$expire_minutes = 20;
if (!isset($_COOKIE("alreadysent"))
{
// First time:
mailto();
// Set the cookie
setcookie("alreadysent", TRUE, time() + (60 * $expire_minutes)); // 20min expiry
}
else
{
echo "sorry you already sent it.";
}