Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
4 / 4 / 0
Регистрация: 02.04.2014
Сообщений: 120
1

Не могу разобраться в чем ошибка, в обратной форме можно отправлять пустые письма

17.10.2018, 11:40. Показов 757. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По шаблону учусь делать сайт, в шаблоне оказывается не работает форма обратной связи, я переправлял с другим кодом, но теперь можно посылать письмо не заполнив поля, как сделать так чтобы пустые письма не шли?
HTML5
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
 <div class="form_error text-center">
                      <div class="name_error hide error">Ваше имя</div>
                       <div class="email_error hide error">Ваша почта</div>
                        <div class="email_val_error hide error">Введите действительный адрес почты</div>
                        <div class="message_error hide error">Введите ваше сообщение</div>
                    </div>   
                <!-- END ERROR AND SUCCESS MESSAGE -->
 
                <!-- CONTACT FORM starts here, Go to contact.php and add your email ID, thats it.-->    
                    
  <!--Данные введенные пользователем обрабатываются кодом в mail.php-->
  <form action="./mail.php" method="post">
  <!--Тег используется для группировки связанных элементов в форме-->
  
      <div class="row">
  <!--Тег задает заголовок для групповых элементов-->
<div class="col-md-4">
 
  <!--Устанавливает однострочное текстовое поле ввода:-->
  <input type="text" class="form-control" placeholder="Ваше имя"  name=" name">
  <!--Используется для полей ввода, которые должны содержать адрес электронной почты.-->
 
  <input type="text" class="form-control" placeholder="E-mail:" name="email">
  
  <input type="text" class="form-control" placeholder="Номер телефона:" name="phone">
 </div>
 <div class="col-md-8">
  <!--Тег разрешает многострочный ввод текста.-->
 
  <textarea rows="10" cols="45" class="form-control"  placeholder="  Напишите ваше сообщение..."name="message"></textarea>
  <!--Устанавливает кнопку для отправки данных формы в обработчик формы.-->
  <input type="submit" class="btn btn-default submit-btn form_submit" value="Отправить сообщение">
  </div>
  </div>
 
  </form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<head>
<meta charset="UTF-8">
<meta http-equiv="Refresh" content="2; URL=https://solncebanny.000webhostapp.com/#home"> 
</head>
<?php
$to = "тут у меня нормальная почта@gmail.com"; // емайл получателя данных из формы 
$tema = "Форма обратной связи на PHP"; // тема полученного емайла 
$message = "Ваше имя: ".$_POST['name']."<br>";//присвоить переменной значение, полученное из формы name=name
$message .= "E-mail: ".$_POST['email']."<br>"; //полученное из формы name=email
$message .= "Номер телефона: ".$_POST['phone']."<br>"; //полученное из формы name=phone
$message .= "Сообщение: ".$_POST['message']."<br>"; //полученное из формы name=message
$headers = 'MIME-Version: 1.0' . "\r\n"; // заголовок соответствует формату плюс символ перевода строки
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // указывает на тип посылаемого контента
mail($to, $tema, $message, $headers); //отправляет получателю на емайл значения переменных
?>
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
60
61
62
63
64
65
66
$(document).ready(function() {
 
    "use strict";
    
    $(".form_submit").click(function() {
 
        "use strict";
        
        var name = $("#name").val();
        var emaild = $("#email").val();
        var subject = $("#subject").val();
        var message = $("#message").val();
        var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
        if (!name) {
            $(".form_error .name_error").addClass("show").removeClass("hide");
            return false;
        } else {
            $(".form_error .name_error").addClass("hide").removeClass("show");
        }
        if (!emaild) {
            $(".form_error .email_error").addClass("show").removeClass("hide");
            return false;
        } else {
            $(".form_error .email_error").addClass("hide").removeClass("show");
            if (testEmail.test(emaild)) {
                $(".form_error .email_val_error").addClass("hide").removeClass("show");
            } else {
                $(".form_error .email_val_error").addClass("show").removeClass("hide");
                return false;
            }
        }
        if (!message) {
            $(".form_error .message_error").addClass("show").removeClass("hide");
            return false;
        } else {
            $(".form_error .message_error").addClass("hide").removeClass("show");
        }
        if (name && emaild && message) {
            $.ajax({
                url: 'contact.php',
                data: {
                    name: name,
                    emaild: emaild,
                    subject: subject,
                    message: message
                },
                type: 'POST',
                success: function(data) {
                    $(".Sucess").show();
                    $(".Sucess").fadeIn(2000);
                    $(".Sucess").html("<i class='fa fa-check'></i> Dear <b>" + name + "</b> Thank you for your inquiry we will respond to you as soon as possible!");
                    $("#Name").val("");
                    $("#Email").val("");
                    $("#Subject").val("");
                    $("#Message").val("");
                    $(".form_error .name_error, .form_error .email_error, .form_error .email_val_error, .form_error .message_error").addClass("hide").removeClass("show");
                    $("#name").val("");
                    $("#email").val("");
                    $("#subject").val("");
                    $("#message").val("");
                }
            });
        }
        return false;
    });
});
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2018, 11:40
Ответы с готовыми решениями:

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

Не могу разобраться в чём ошибка
Помогите, пожалуйста, разобраться в чём ошибка procedure TForm1.Button1Click(Sender: TObject);...

Не могу разобраться в чём ошибка
Массив заполнен с помощью генератора случайных чисел. Разности (1-2,3-4,..,19-20) отсортировать по...

В чем ошибка? не могу разобраться
В чем ошибка? не могу разобраться. Вот задание: Три устройства обрабатывают заявки в течении 690...

2
Модератор
Эксперт HTML/CSS
2277 / 1657 / 651
Регистрация: 07.08.2016
Сообщений: 3,972
17.10.2018, 13:23 2
У вас нет отмены действия браузера по умолчанию, а return false; работает только в случае, если обработчик был назначен через onсобытие, поэтому после клика происходит событие submit.
Чтобы ваша функция заработала ее нужно назначать так:
Javascript
1
2
3
$(".form_submit").on('click', function() {
 //текст функции
});
Либо использовать preventDefault(); для отмены отправки формы и submit(); когда форму нужно отправить.
И еще, тут:
Javascript
1
2
3
4
  var name = $("#name").val();
        var emaild = $("#email").val();
        var subject = $("#subject").val();
        var message = $("#message").val();
вы пытаетесь получить значение элементов по id, а в хтмл коде почему то используете name, ну и плюс элемента, хоть с id, хоть с name subject в хтмл коде вообще нет.
1
4 / 4 / 0
Регистрация: 02.04.2014
Сообщений: 120
17.10.2018, 15:24  [ТС] 3
Я всё исправил, но теперь в письмах нету почты которую указывает пользователь... Я не могу понять что не так
HTML5
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
<div class="form_error text-center">
                      <div class="name_error hide error">Ваше имя</div>
                       <div class="email_error hide error">Ваша почта</div>
                        <div class="email_val_error hide error">Введите действительный адрес почты</div>
                        <div class="message_error hide error">Введите ваше сообщение</div>
                    </div>   
                    <div class="Sucess"></div>
                <!-- END ERROR AND SUCCESS MESSAGE -->
 
                <!-- CONTACT FORM starts here, Go to contact.php and add your email ID, thats it.-->    
                    
  <!--Данные введенные пользователем обрабатываются кодом в mail.php-->
  <form action="./mail.php" method="post">
  <!--Тег используется для группировки связанных элементов в форме-->
  
      <div class="row">
  <!--Тег задает заголовок для групповых элементов-->
<div class="col-md-4">
 
  <!--Устанавливает однострочное текстовое поле ввода:-->
  <input type="text" class="form-control" placeholder="Ваше имя" id="name" name=" name">
  <!--Используется для полей ввода, которые должны содержать адрес электронной почты.-->
 
  <input type="email" class="form-control" placeholder="E-mail:" id="email" name="email">
  
  <input type="phone" class="form-control" placeholder="Номер телефона:" id="phone" name="phone">
 </div>
 <div class="col-md-8">
  <!--Тег разрешает многострочный ввод текста.-->
 
  <textarea rows="10" cols="45" class="form-control" id="message" placeholder="  Напишите ваше сообщение..."name="message"></textarea>
  <!--Устанавливает кнопку для отправки данных формы в обработчик формы.-->
  <input type="submit" class="btn btn-default submit-btn form_submit" value="Отправить сообщение">
  </div>
  </div>
 
  </form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<head>
<meta charset="UTF-8">
<meta http-equiv="Refresh" content="2; URL=https://solncebanny.000webhostapp.com/#home"> 
</head>
<?php
$to = "мояпочта@gmail.com"; // емайл получателя данных из формы 
$tema = "Форма обратной связи на PHP"; // тема полученного емайла 
$message = "Ваше имя: ".$_POST['name']."<br>";//присвоить переменной значение, полученное из формы name=name
$message .= "E-mail: ".$_POST['email']."<br>"; //полученное из формы name=email
$message .= "Номер телефона: ".$_POST['phone']."<br>"; //полученное из формы name=phone
$message .= "Сообщение: ".$_POST['message']."<br>"; //полученное из формы name=message
$headers = 'MIME-Version: 1.0' . "\r\n"; // заголовок соответствует формату плюс символ перевода строки
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // указывает на тип посылаемого контента
mail($to, $tema, $message, $headers); //отправляет получателю на емайл значения переменных
?>
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
60
61
62
63
64
65
66
67
$(document).ready(function() {
 
    "use strict";
    
    $(".form_submit").on('click', function() {
 
        "use strict";
        
        var name = $("#name").val();
        var emaild = $("#email").val();
        var phone = $("#phone").val();
        var message = $("#message").val();
        
        var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
        if (!name) {
            $(".form_error .name_error").addClass("show").removeClass("hide");
            return false;
        } else {
            $(".form_error .name_error").addClass("hide").removeClass("show");
        }
        if (!emaild) {
            $(".form_error .email_error").addClass("show").removeClass("hide");
            return false;
        } else {
            $(".form_error .email_error").addClass("hide").removeClass("show");
            if (testEmail.test(emaild)) {
                $(".form_error .email_val_error").addClass("hide").removeClass("show");
            } else {
                $(".form_error .email_val_error").addClass("show").removeClass("hide");
                return false;
            }
        }
        if (!message) {
            $(".form_error .message_error").addClass("show").removeClass("hide");
            return false;
        } else {
            $(".form_error .message_error").addClass("hide").removeClass("show");
        }
        if (name && emaild && message) {
            $.ajax({
                url: 'mail.php',
                data: {
                    name: name,
                    emaild: emaild,
                    phone: phone,
                    message: message
                },
                type: 'POST',
                success: function(data) {
                    $(".Sucess").show();
                    $(".Sucess").fadeIn(2000);
                    $(".Sucess").html("<i class='fa fa-check'></i> Уважаемый пользователь <b>" + name + "</b> Спасибо за ваш запрос, мы ответим вам как можно скорее!");
                    $("#Name").val("");
                    $("#Email").val("");
                    $("#phone").val("");
                    $("#Message").val("");
                    $(".form_error .name_error, .form_error .email_error, .form_error .email_val_error, .form_error .message_error").addClass("hide").removeClass("show");
                    $("#name").val("");
                    $("#email").val("");
                    $("#phone").val("");
                    $("#message").val("");
                }
            });
        }
        return false;
    });
});
Добавлено через 48 минут
в этой строке emaild нужно заменить поскольку в скриптах емайл заменен в емайлд
PHP
1
$message .= "E-mail: ".$_POST['email']."<br>"; //полученное из формы name=email
0
17.10.2018, 15:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2018, 15:24
Помогаю со студенческими работами здесь

Не могу разобраться в чем ошибка
Ребят, посмотрите пожалуйста эту програмку: Не работает 13 строчка, пишет нельзя считывать данные...

Не могу разобраться в чем ошибка
import math family = input('Здравствуйте, как вас зовут? ') print(family + ', мы рады представить...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru