Перейти к содержимому

Реферальная программа Мегаплана


2 письма в обратной связи на php

#1 Info-Mans

Info-Mans
  • Пользователь
  • 1 176 сообщений
  • Репутация: 112
0

Отправлено 08 Июль 2015 - 23:02

Всем доброго дня.

 

Вообщем такая проблема: на странице 2 одинаковые формы обратной связи, которые ведут на скрипт отправки сообщения на почту. Но при заполнении одной любой формы, при отправке приходит 2 сообщения, одно с данными, а другое пустое.

 

Вот php код

$sendto = "test@mail.ru"; // почта, на которую будет приходить письмо
$username = $_POST['name']; // сохраняем в переменную данные полученные из поля c именем
$usertel = $_POST['phone']; // сохраняем в переменную данные полученные из поля c телефонным номером
$usermail = "test@mail.ru"; // сохраняем в переменную данные полученные из поля c адресом электронной почты

// Формирование заголовка письма
$subject = "Пилка SCHOLL VELVET SMOOTH";
$headers = "From: " . strip_tags($usermail) . "\r\n";
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";

// Формирование тела письма
$msg = "<html><body style='font-family:Arial,sans-serif;'>";
$msg .= "<p style='font-size:20px;'><strong>От кого:</strong> ".$username."</p>\r\n";
$msg .= "<p style='font-size:20px;'><strong>Номер телефона:</strong> ".$usertel."</p>\r\n";
$msg .= "</body></html>";

// отправка сообщения
if(@mail($sendto, $subject, $msg, $headers)) {
echo "<div class='mail'><p>Спасибо за проявленное доверие! <br> Время работы call-центра с 9-00 до 21-00 ПН-ВС. Если вы оставили заявку в нерабочее время менеджер свяжется с вами завтра. <br> Ожидайте нашего звонка!</p></div>";
} else {
echo "<div class='mail'><p>Письмо не отправлено! Повторите попытку заного! Или сообщите об ошибке по телефону</p></div>";
}

Подскажите в чем ошибка? Почему приходит 2 письма?

 

 

 

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#2 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 09 Июль 2015 - 10:00

@Info-Mans, а зачем две формы?


  • 0

#3 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 09 Июль 2015 - 10:49

на странице 2 одинаковые формы обратной связи
Возможно, каким-то образом активируются обработчики обеих форм. Еще иногда бывают случаи, когда в рамках одной формы одновременно активируются обычный обработчик и AJAX-обработчик, но это видимо не ваш случай, если конечно при отправке через AJAX у вас не происходит очистки полей формы.
  • 0

#4 Info-Mans

Info-Mans
    Topic Starter
  • Пользователь
  • 1 176 сообщений
  • Репутация: 112

Отправлено 09 Июль 2015 - 11:09

@Info-Mans, а зачем две формы?

Это на однастраничнике) одна вверху другая внизу
  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#5 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 09 Июль 2015 - 11:30

@Info-Mans, в коде, который выше, нет ничего такого, чтобы отправляло два раза. Нужно смотреть саму реализацию отправки формы, всего скорее сбой происходит там.


  • 0

#6 Info-Mans

Info-Mans
    Topic Starter
  • Пользователь
  • 1 176 сообщений
  • Репутация: 112

Отправлено 09 Июль 2015 - 18:51

Вот такие 2 кода формы на странице

<div class="form">
			<form action="mail.php" method="POST" class="order" id="formorder">
				<div class="inp_block">
					<input type="text" onfocus="if(this.value=='Введите Ваше Имя') this.value='';" onblur="if(this.value=='') this.value='Введите Ваше Имя';" value="Введите Ваше Имя" name="name" class="inp_text" id="nameorder">
				</div>
				<div class="inp_block">
					<input type="text" onfocus="if(this.value=='Введите Ваш Телефон') this.value='';" onblur="if(this.value=='') this.value='Введите Ваш Телефон';" value="Введите Ваш Телефон" name="phone" class="inp_text" id="phoneorder">
				</div>
				<button class="send_order" id="sendorder" onclick="yaCounter31291843.reachGoal('sendorder'); return true;">Купить со СКИДКОЙ!</button>
			</form>
		</div>

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#7 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 09 Июль 2015 - 19:34

@Info-Mans, адрес страницы если можно, так только пальцем в небо тыкать. Можно в личку отправить, я уже посмотрю работу скрипта в живую


  • 1

#8 Info-Mans

Info-Mans
    Topic Starter
  • Пользователь
  • 1 176 сообщений
  • Репутация: 112

Отправлено 09 Июль 2015 - 21:30

@Ixman, Могу и сюда))) http://rs2-shop.ru/


  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#9 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 10 Июль 2015 - 13:02

@Info-Mans, ну тогда я буду вводить данные в форму, не нужно обращать на них внимание, в поле тел будут ноли, чтоб не спутать )

По заголовкам всё отлично работает, повтора данных не заметил.

 

Кстати сейчас по гуглил, и нашёл одной из причин может быть яндекс метрика, она загружает страницу повторно, всего скорее из-за этого идёт отправка пустого письма. Могу только предложить проверку на наличие POST данных. как-то так:

if (!empty($_POST)) {
$sendto = "test@mail.ru"; // почта, на которую будет приходить письмо
$username = $_POST['name']; // сохраняем в переменную данные полученные из поля c именем
$usertel = $_POST['phone']; // сохраняем в переменную данные полученные из поля c телефонным номером
$usermail = "test@mail.ru"; // сохраняем в переменную данные полученные из поля c адресом электронной почты

// Формирование заголовка письма
$subject = "Пилка SCHOLL VELVET SMOOTH";
$headers = "From: " . strip_tags($usermail) . "\r\n";
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";

// Формирование тела письма
$msg = "<html><body style='font-family:Arial,sans-serif;'>";
$msg .= "<p style='font-size:20px;'><strong>От кого:</strong> ".$username."</p>\r\n";
$msg .= "<p style='font-size:20px;'><strong>Номер телефона:</strong> ".$usertel."</p>\r\n";
$msg .= "</body></html>";

// отправка сообщения
if(@mail($sendto, $subject, $msg, $headers)) {
echo "<div class='mail'><p>Спасибо за проявленное доверие! <br> Время работы call-центра с 9-00 до 21-00 ПН-ВС. Если вы оставили заявку в нерабочее время менеджер свяжется с вами завтра. <br> Ожидайте нашего звонка!</p></div>";
} else {
echo "<div class='mail'><p>Письмо не отправлено! Повторите попытку заного! Или сообщите об ошибке по телефону</p></div>";
}
}

  • 0

#10 Info-Mans

Info-Mans
    Topic Starter
  • Пользователь
  • 1 176 сообщений
  • Репутация: 112

Отправлено 16 Июль 2015 - 00:55

@Ixman, спасибо помогло))) 


  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru