phpmail отправив письмо дважды

У меня есть скрипт php, который должен отправлять электронное письмо после завершения регистрации. Это прекрасно работает, когда, как только кто-то зарегистрировался, электронное письмо отправляется, и я его получаю. Однако я заметил, что иногда я получаю одно и то же письмо примерно через час после этого. Иногда он даже неожиданно отправляет мне электронное письмо для регистрации, полученной несколько недель назад.

$key=$_GET[key];
if(isset($key) || !empty($key)){
$query1=mysql_query("SELECT * FROM registration WHERE value='$key'");
while($question_list = mysql_fetch_array($query1)){
$num_questions=mysql_num_rows($query1);
$title= $question_list['title'];
$firstname=$question_list['firstname'];
$lastname=$question_list['familyname'];
$dateofbirth=$question_list['dob'];
$gender=$question_list['gender'];
$nationality=$question_list['nationality'];
$email=$question_list['email'];
$to = "userregistration@yahoo.com";
$subject = "Registration";
$message = "Hello! Registration, see below."."\n";
$message.="\n";
$message.="Title: ";
$message.=$title."\n";
$message.="First Name: ";
$message.=$firstname."\n";
$message.="Last Name: ";
$message.=$lastname."\n";
$message.="Gender: ";
$message.=$gender."\n";
$message.="Date of Birth: ";
$message.=$dateofbirth."\n";
$message.="Nationality: ";
$message.=$nationality."\n";
$message.="Email Address: ";
$message.=$email."\n";
$message.="Telephone: ";
$message.=$telephone."\n";
$from = "registration@yahoo.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
}
}

0

Решение

Измените ваш SQL-запрос на

"SELECT * FROM registration WHERE value='$key' LIMIT 0,1"

чтобы он отправлял почту только один раз

в списке вопросов, если вы получаете 2 записи из таблицы, то в итоге вы отправите одно письмо дважды.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector