Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.01.2021
Сообщений: 3
1

Форма обратной связи с лендинга-пустые сообщения

16.01.2021, 10:48. Просмотров 815. Ответов 5

Всем здравствуйте! Ребята, помогите решить вопрос.
Есть форма обратной связи на одностраничнике, все настроил, но при тестировании письма приходят в таком формате

Новое сообщение

Имя:

Номер телефона:

Почта:

Сообщение:


т.е. приходит не заполненная форма!

Вот исходники, помогите, что-то надо поправить...

файл sendmessage.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$sendto = "admin@.........ru"; // Обязательно измените e-mail на свой
$usermail = $_POST['email'];
$username = $_POST['name'];
$userphone = $_POST['phone'];
$content = nl2br($_POST['msg']);
 
// Формирование заголовка письма
$subject = "Новое сообщение";
$headers = "From: admin@...........ru " . 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 .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Новое сообщение</h2>\r\n";
$msg .= "<p><strong>Имя:</strong> ".$username."</p>\r\n";
$msg .= "<p><strong>Номер телефона:</strong> ".$userphone."</p>\r\n";
$msg .= "<p><strong>Почта:</strong> ".$usermail."</p>\r\n";
$msg .= "<p><strong>Сообщение:</strong> ".$content."</p>\r\n";
$msg .= "</body></html>";
 
// отправка сообщения
if(@mail($sendto, $subject, $msg, $headers)) {
    echo "true";
} else {
    echo "false";
}
?>
форма отправки
HTML5
1
2
3
4
5
6
7
8
9
10
<div id="inline">
    <div class="wrap"><h2>Онлайн заявка</h2></div>
    <form id="contact" name="contact" action="#" method="post">
    <input type="name" id="name" name="name" class="txt" placeholder="Ваше имя">
    <input type="phone" id="phone" name="phone" class="txt" placeholder="Ваш телефон">
    <input type="email" id="email" name="email" class="txt" placeholder="Ваш e-mail">
    <textarea id="msg" name="msg" class="txtarea"  placeholder="Ваше сообщение:"></textarea>
<button id="send">Отправить</button>
</form>
</div>
Скрипт
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<script>
function validateEmail(email) {
    var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return reg.test(email);
}
    $(document).ready(function(){
    $("#contact").submit(function(){return false;});
    $("#send").on("click",function(){
    var emailval=$("#email").val();
    var namevl=$("#name").val();
    var phonevl=$("#phone").val();
    var msgval=$("#msg").val();
    var msglen=msgval.length;
    var mailvalid=validateEmail(emailval);
    if(mailvalid==false){
    $("#email").addClass("error");
    }
    else if(mailvalid==true){
    $("#email").removeClass("error");
    }
    if(mailvalid==false){
    $("#name").addClass("error");
    }
    else if(mailvalid==true){
    $("#name").removeClass("error");
    }
    if(mailvalid==false) {
    $("#phone").addClass("error");
    }
    else if(mailvalid==true){
    $("#phone").removeClass("error");
    }
    if(msglen<4){
    $("#msg").addClass("error");
    }
    else if(msglen>=4){
    $("#msg").removeClass("error");
    }
    if(mailvalid==true&&msglen>=4){
    // если обе проверки пройдены
    // сначала мы скрываем кнопку отправки
    $("#send").replaceWith("<em>отправка...</em>");
    $.ajax({
    type:'POST',
    url:'sendmessage.php',
    data:$("#contact").serialize(),
    success:function(data){
        if(data=="true"){
        $("#contact").fadeOut("fast", function(){
        $(this).before("<p><strong>Ваше сообщение отправлено</strong></p>");
        setTimeout("$.fancybox.close()",1000);
        });
        }
    }
    });
    }
    });
});
</script>
Вроде все прикрепил
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2021, 10:48
Ответы с готовыми решениями:

С формы обратной связи приходят пустые сообщения
Всем привет. Столкнулся с такой проблемой. На сайте есть форма обратной связи, работает без...

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

Форма обратной связи не отправляет сообщения
Добрался до формы с обратной связью. По идее все легко и просто, но вот почему то не хочет...

Форма обратной связи не отправляет сообщения
Сделал форму обратной связи, протестировал на Denwer, в папке sendmail оно приходит. Залил на...

5
0 / 0 / 0
Регистрация: 16.01.2021
Сообщений: 3
09.02.2021, 13:18  [ТС] 2
Добрый день! Никто не ответит? Нет смелых?)
0
643 / 490 / 124
Регистрация: 01.10.2018
Сообщений: 1,912
09.02.2021, 14:39 3
Цитата Сообщение от sergjjk404 Посмотреть сообщение
что-то надо поправить...
Заменить весь PHP-код нормальным.
0
Эксперт PHP
3531 / 2965 / 1245
Регистрация: 01.08.2012
Сообщений: 10,201
09.02.2021, 14:41 4
Надо просто дебажить поэтапно. Проверяйте в консоли браузера, отправляются ли данные на сервер. Затем в самом PHP с помощью var_dump() проверьте, что лежит в $_POST, что в $msg.
0
0 / 0 / 0
Регистрация: 16.01.2021
Сообщений: 3
09.02.2021, 17:00  [ТС] 5
А что в коде не нормально?

Добавлено через 2 минуты
Письма то все приходят, но форма не заполнена
0
1008 / 668 / 287
Регистрация: 04.04.2013
Сообщений: 2,668
10.02.2021, 16:34 6
sergjjk404, для диагностики проблемы для начала отключите js от формы и отправьте напрямую в обработчик. Только не забудьте у формы заполнить атрибут action.

В самом обработчике в самом вверху добавьте код и проверьте приходят ли вообще данные на сервер:
PHP
1
2
var_dump($_POST);
exit;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2021, 16:34

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

Заголовок сообщения в иероглифах (форма обратной связи)
Добрый день, помогите пожалуйста! При отправке сообщения с сайта, на почту приходит сообщение с...

Форма обратной связи (вместо отправки сообщения открывается код php)
Ку всем вместо отправки сообщение открывает скрипт php p.s. Я нуб в етом код с инета взял и...

Приходят пустые письма обратной связи
Ребят,помогите пожалуйста, приходят на почту письма без содержания заполненных форм :cry: &lt;form...

Как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена
Добрый день. Подскажите пожалуйста как сделать чтоб форма обратной связи не отправляла письмо если...

Не работает форма обратной связи и форма авторизации
Не работает форма обратной связи и форма авторизации. Когда регистрируешься и нажимаешь на кнопку...

Скрипт обратной связи отправляет пустые графы имя\телефон\сообщение
Добрый день. Есть форма обратной связи на сайте, скрипт send.php. Сам алгоритм отрабатывает на ура,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.