phpmailer重复提交的问题。 http://blog.csdn.net/daydreamingboy/article/details/6299495 我要把某个页面的表单以邮件的形式用PHPMailer发送到指定邮箱,怕有人重复提交,不知道有没有这方面的专家啊? ?php if(isset($_POST['submitted'])){ require('PHPM
phpmailer重复提交的问题。
http://blog.csdn.net/daydreamingboy/article/details/6299495
我要把某个页面的表单以邮件的形式用PHPMailer发送到指定邮箱,怕有人重复提交,不知道有没有这方面的专家啊?
if (isset($_POST['submitted'])) {
require('PHPMailer/class.phpmailer.php');
$mail = new PHPMailer();
//不包含表单验证
if (!empty($_POST['contact']) && !empty($_POST['subject']) &&
!empty($_【本文来自鸿网互联 (http://www.68idc.cn)】POST['content']) && !empty($_POST['from'])) {
$address = $_POST['contact'];
$mail->Subject = $_POST['subject'];
$mail->Body = $_POST['content'];
$mail->FromName = $_POST['from'];
} else {
echo '请全部填写完整!
';
exit();
}
$mail->IsSMTP();
$mail->Host = "smtp.163.com";
$mail->SMTPAuth = true;
$mail->Username = "your_mail@163.com";
$mail->Password = "your_password";
$mail->Port = 25;
$mail->From = " your_mail@163.com";
$mail->AddAddress("$address", "my friend");
if (!$mail->Send()) {
echo "
邮件发送失败!
";
echo "错误原因: " .$mail->ErrorInfo;
exit();
} else {
echo "
邮件发送成功!
";
}
}
?>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
使用PHPMailer发送邮件
------解决思路----------------------
提交过的用数据库记录,再提交时,根据email地址判断是否重复。
------解决思路----------------------
session_start();
$key = md5(serialize($_POST));
if(empty($_SESSION['last'])) $_SESSION['last'] = $key;
else if($_SESSION['last'] == $key) die('不能重复发送');
//发送邮件
1、不能仅使 提交按钮 失效,因为用户可能需要发送多封邮件。何况普通的表单提交会产生新页,并不会被失效
2、不能仅从目标邮箱判断,向一个邮箱发送多封邮件是很常见的事情
3、只有在两次提交的内容完全相同时,才能视为重复









