Php表单重复电子邮件

时间:2013-04-14 06:11:04

标签: php forms duplicates html-email

我有一个php表单,有时只复制收到的电子邮件。我已经对代码进行了三次检查,没有任何东西可以进行循环。我还做了一个会话,阻止相同的信息被发送并插入到数据库..但我仍然收到几次电子邮件..

我尝试重新创建用户可能发送这些电子邮件的方式以及可能导致这些电子邮件的原因。我发现造成这种重复的原因是多次点击提交按钮。我点击提交按钮的次数是我收到的重复电子邮件数量。

有谁知道为什么会这样?我怎么能阻止?

2 个答案:

答案 0 :(得分:1)

当您多次单击“提交”按钮时,它正在向服务器发出x请求,并且您正在收到x邮件。为避免这种情况,您可以使用以下方法。

  • 使用表单令牌,因此一个表单只有一次有效。
  • 首次点击后使用javascript禁用提交按钮以避免多次提交。

答案 1 :(得分:0)

使用时间戳设置会话变量的效果。如果时间戳小于30秒,则死亡。

<?php
session_start();
$sTime = time() - 15;
if($sTime > $_SESISON['submit_timestamp']){
    // process form
} else {
    // some sort of error handling if you want it.
}
?>