是否有可靠的方法阻止用户一次发送多封电子邮件?
我有一个基本的html表单,允许用户输入电子邮件地址:
email1@address1.com
此工作正常,电子邮件已发送。但是,用户也可以这样做:
email1@address1.com, email2@address2.com, email3@address3.com
按下提交按钮后,我的代码会发送所有3封电子邮件。我如何阻止这种情况发生。我想限制用户,并且只允许他/她每次提交发送1封电子邮件。
我目前的代码是:
<?php
$email_from = "oshirowanen@localhost.com";
$email_to = $_POST["referred_email"];
$email_subject = 'test subject here';
$email_message = $_POST["referred_message"];
// create email headers
$headers = 'From: '. $email_from ."\r\n".
'Reply-To: '. $email_from ."\r\n" .
'X-Mailer: PHP/' . phpversion();
$result = mail($email_to, $email_subject, $email_message, $headers);
if ($result) echo 'Mail accepted for delivery ';
if (!$result) echo 'Test unsuccessful... ';
?>
答案 0 :(得分:3)
在发送邮件之前,请检查$email_to
是否为有效的电子邮件地址。最简单的方法是使用filter_var():
if (!filter_var($email_to, FILTER_VALIDATE_EMAIL)) {
// handle error
}
答案 1 :(得分:0)
使用正则表达式评估输入字段的内容:http://www.regular-expressions.info/email.html
或者只需将新电子邮件类型用于输入字段:http://www.w3schools.com/html/html5_form_input_types.asp