[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mail() дублирует письмо
vegasmoscow
Всем привет!

Пишу скрипт авторизации/регистрации. Столкнулся с такой проблемой, письмо отправляется дважды. В чем дело никак не пойму.

Причем, при отработке скрипта регистрации, после проверки всех данных на корректность, отправляется письмо со ссылкой для подтверждения эл. адреса. В этом случае отправляется как положено один раз.

При выполнении скрипта авторизации также задействована функция mail(), в данном случае эта функция выполняется, если эл. адрес не был подтвержден ранее, отправляется второе письмо с активационной ссылкой. Здесь отправляется дважды.

Как такое может быть? Почему во втором случае письмо дублируется?

Страницы авторизации и регистрации в разных файлах и не могут запускаться случайно одновременно, да и переменные для них разные.

Вот код:
	// Если уч. запись не подтверждена
$auth_login = $_SESSION['auth_login'];
$auth_pass_md5 = md5 ($_SESSION['auth_pass']);
$result_status = mysql_query (" SELECT * FROM `clients` WHERE `cl_login` = '$auth_login' AND `cl_pass` = '$auth_pass_md5' ");
$row_status = mysql_fetch_array ($result_status, MYSQL_BOTH);
if ($row_status['cl_status'] == 'no') {
// Автоматически отправляем письмо с активацией
$subject = 'Повторная активация учетной записи';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=windows-1251\r\n";
$headers .= "From: Мой Сайт <".MAIL.">\r\n";
$message = "Ссылка для подтверждения учетной записи<br/><br/> <a href=\"".HOST."/registration/index.php?cl_code=".$row_status['cl_code']."\">Подтвердить адрес электронной почты</a>";
mail($row_status['cl_e_mail'], $subject, $message, $headers);
echo 'Ваша уч. запись не активирована. На Ваш эл. адрес отправлено письмо со ссылкой активации.';


Были у кого-нибудь похожие проблемы с отправкой почты?



Спустя 2 часа, 30 минут, 52 секунды (12.06.2012 - 06:59) vegasmoscow написал(а):
В общем, кое-как методом тыка вычислил причину. На странице авторизации выводилась еще одна форма (она общая в шаблоне и находится в правом верхнем углу по умолчанию, выводится на всех страницах). Так вот, имена кнопок у обоих форм авторизации были одинаковыми, имена полей тоже, хоть и присваивались разным переменным. В общем, я изменил название кнопки одной из форм (name) и стало приходить одно письмо. До конца не понял механизма действия, но теперь все заработало как надо.

Проблема решена.

Спустя 15 минут, 12 секунд (12.06.2012 - 07:14) johniek_comp написал(а):
с таблицы clients достаешь все поля, а юзаешь только 3....не хорошо

Спустя 5 минут, 59 секунд (12.06.2012 - 07:20) vegasmoscow написал(а):
Цитата
с таблицы clients достаешь все поля, а юзаешь только 3....не хорошо


Сначала были только нужные поля, но потом поставил *, поскольку дальше скрипт использует и остальные (дальше проверка логина и пароля). А пока на данном этапе в таблице 4 поля.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.