После каждого обновления сайта приходит пустое письмо по форме
Здравствуйте! Помогите разобраться, почему при каждом обновлении или переходе на сайт приходит пустое письмо на почту по форме обратного звонка. Вот код, скрипт и обработчик
<article class="call_form">
<form class="div_form" method="post" name="contactForm"><input class="name_txt f16px" maxlength="30" name="uname" required="" size="20" type="text" placeholder="Ваше имя *" />
<input class="email_txt f16px" maxlength="30" name="email" required="" size="20" type="email" placeholder="Ваш e-mail *" />
<input class="phone_txt f16px" maxlength="30" name="phone" required="" size="20" type="tel" placeholder="Ваш телефон *" />
<textarea class="txt_form" maxlength="500" name="text" placeholder="Краткое описание заявки"></textarea>
<input name="bezspama" type="text" style="display:none" value="" />
<button class="button_call_form padd aligner f18px white cursor" type="submit">Отправить</button>
</form></form>
</article>
jQuery(document).ready(function() {
jQuery('form').submit(function(event) {
event.preventDefault();
var form_data = $(this).serialize();
jQuery.ajax({
type: jQuery(this).attr('method'),
url: jQuery(this).attr('action'),
data: form_data,
cache: false,
processData: false,
success: function(result) {
alert('Ваша заявка принята, спасибо! В ближайшее время с Вами свяжется наш специалист.'),
location.href = "http://yummybox.by";
header('Location: header.php');
},
});
});
});
$recepient = "Punchenkoaleks@gmail.com"; $sitename = "yummybox.by"; $uname = trim($_POST["uname"]); $phone = trim($_POST["phone"]); $email = trim($_POST["email"]); $text = trim($_POST["text"]); $message = "Имя: $uname \nТелефон: $phone \nE-mail: $email \nТекст: $text"; $pagetitle = "Новая заявка с сайта \"$sitename\""; mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient"); Заранее благодарен! |
Цитата:
То есть при каждом запросе страницы на почту приходит письмо само по себе? |
Да, даже если форма до этого не заполнялась. А если заполнялась, то по отправлению приходит письмо с данными и одно пустое.
|
header('Location: header.php'); - удалить из кода
url: jQuery(this).attr('action'), достаточно type: this.method, url: this.action, В остальном на клиенте в коде нет проблем и сама форма отправляться не может, если только ее не программно что-то отправляет. То есть проблему ищите на сервере, либо скрипт не по условию (приему формы отправляется), либо иные причины. И почитайте об оформлении почтовых отправлений, так как у вас делать можно только как пример из мануала. |
Скорее всего страница выглядит примерно так:
<?php mail(); ?><body> <form method="post"> <input type="submit"/> </form> </body> Т.е. скрипт формирующий страницу является и обработчиком формы, а проверку на метод запроса не реализовали. |
Да, проблема была в том, что обработчик находился в файле function.php
Но если формирую отдельный файл и прописываю action="contact-form.php" то письма совсем не приходят. Возможно адрес в action нужно прописать как-то иначе, т.к. CMS - WordPress |
Все разобрался ) Прописал так action="<?php bloginfo('template_directory')?>/contact-form.php" Огромное спасибо за подсказки!!!
|
Nexus, я почему-то не могу отправить Вам отзыв ) Пишет, подряд одному и тому же нельзя, хотя я только что отправил отзыв laimas. И это уже не первый раз )
|
Цитата:
<?php
If($_POST) { //и т.п.
//выполнение
exit; //обязательно
}
?>
<html>
далее код страницы, которую получает клиент
|
| Часовой пояс GMT +3, время: 11:39. |