Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Олеся Довга
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
1

Как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена

23.07.2015, 21:49. Просмотров 1250. Ответов 17
Метки нет (Все метки)

Добрый день. Подскажите пожалуйста как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2015, 21:49
Ответы с готовыми решениями:

Форма обратной связи на сайте. Как отправлять письмо на реальную почту?
Сделана форма обратной связи, php написан, все работает. Сайт на опенсервере....

Форма обратной связи. Ответное письмо
Здравствуйте! Абсолютно не знаю php, дали задание организовать на сайте форму...

Форма обратной связи присылает пустое письмо
Всем хорошего дня! Итак добавил на сайт форму обратной связи. Письмо на мейл...

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

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

17
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,475
23.07.2015, 22:33 2
код в студию
0
SpawnVL
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 38
24.07.2015, 23:20 3
в обработчике формы сделай проверку
примерно так:
PHP
1
2
3
4
5
if (!$_POST['text']) {
   echo 'Форма не заполнена!';
} else {
 
}
более точную подсказку скажу если код обработчика скинешь.
0
Олеся Довга
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
29.07.2015, 20:14  [ТС] 4
PHP
1
2
3
4
5
6
7
8
9
10
     <?php
    $result = mail("mail@yandex.ru","Текст","Текст: $_POST[fio] Контакты: $_POST[phone]");
    
    if ($result) {
        echo "<p>Сообщение отправлено. </p>";
    }
    else {
    echo "<p>Сообщение не отправлено. Попробуйте еще раз.</p>"; 
    }
     ?>
0
Sergeygorobets
2 / 2 / 1
Регистрация: 01.08.2014
Сообщений: 73
29.07.2015, 20:53 5
Код
<input type="text" name="answerlogin" required/>
допишите "required"
0
Июнь
Заблокирован
29.07.2015, 21:10 6
На сервере все равно лучше проверять, хотя это необязательно.
0
SpawnVL
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 38
30.07.2015, 10:54 7
Цитата Сообщение от Олеся Довга Посмотреть сообщение
<?php
* * $result = mail("mail@yandex.ru","Текст","Текст: $_POST[fio] Контакты: $_POST[phone]");
if ($result) {
* * * * echo "<p>Сообщение отправлено. </p>";
* * }
* * else {
* * echo "<p>Сообщение не отправлено. Попробуйте еще раз.</p>";
* * }
* * *?>
Все так
0
Para bellum
Эксперт PHP
4141 / 3079 / 996
Регистрация: 06.01.2011
Сообщений: 8,998
30.07.2015, 12:07 8
Цитата Сообщение от Июнь Посмотреть сообщение
хотя это необязательно
Обязательно.
0
Июнь
30.07.2015, 18:39
  #9

Не по теме:

Какой вы категоричный :) Благодарю за критику, не только в этой теме ;)

0
Para bellum
31.07.2015, 06:35
  #10

Не по теме:


Цитата Сообщение от Июнь Посмотреть сообщение
Какой вы категоричный
Ну, а как иначе? :)
Цитата Сообщение от Июнь Посмотреть сообщение
Благодарю за критику, не только в этой теме
Я не особо критикую. :) Просто... Ай, даже не знаю. :)

0
Олеся Довга
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
31.07.2015, 14:58  [ТС] 11
SpawnVL, не так. Форма все равно отправляет пустое письмо. Мне просто пустые письма приходят на почту, а мне нужно если форма не заполнена, не отправлять пустое письмо, а вывести ниже формы текст: "Заполните пожалуйста форму", допустим.
0
SpawnVL
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 38
31.07.2015, 15:14 12
PHP
1
2
3
4
5
6
7
8
9
$fio = $_POST['fio'];
$phone = $_POST['phone'];
 
if (!$fio or !$phone]) {
   echo 'Форма не заполнена!';
} else {
   mail("mail@yandex.ru","Текст","Текст: $fio Контакты: $phone");
   echo 'Форма отправлена';
}
Добавлено через 9 минут
Помогло?
0
Олеся Довга
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
31.07.2015, 15:21  [ТС] 13
Проверю вечером сейчас нет возможности на хост попасть. Спасибо.
0
Июнь
Заблокирован
31.07.2015, 15:33 14
SpawnVL, лучше сначала проверять элементы $_POST, а потом уже их присваивать. Можно и без переприсвоения обойтись.
0
evgen26
0 / 0 / 0
Регистрация: 31.07.2015
Сообщений: 1
31.07.2015, 21:58 15
попробуй в условии использовать не "!" а функцию empty например
PHP
1
2
3
4
5
6
7
8
9
$fio = $_POST['fio'];
$phone = $_POST['phone'];
 
if (empty($fio) or empty($phone)) {
   echo 'Форма не заполнена!';
} else {
   mail("mail@yandex.ru","Текст","Текст: $fio Контакты: $phone");
   echo 'Форма отправлена';
}
0
prudkiy
179 / 147 / 55
Регистрация: 21.07.2013
Сообщений: 931
31.07.2015, 23:15 16
Я кстати последнее время тоже пользуюсь required и не заморачиваюсь.
неее ну конечно на сервере само собой проверю входящие данные
0
SpawnVL
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 38
02.08.2015, 05:25 17
evgen26, а разница в чем ? или ! или empty ?

Добавлено через 2 минуты
Проверка само собой нужна, ну тут то мы показываем человеку пример как решить его вопрос. Думаю проверять выходящие данные из формы догадаются =)
0
Июнь
Заблокирован
02.08.2015, 11:05 18
SpawnVL, по значению разницы нет, но с ! может выводиться предупреждение.

Добавлено через 10 минут
Хотя вы в общем-то определяете переменные. Там у вас другая проблема, о которой я писала выше. Т.е. нужно так:
PHP
1
if (empty($_POST['fio'])...
А можно и так:
PHP
1
2
3
$fio=isset($_POST['fio'])?$_POST['fio']:'';
 
if (!$fio)...
Только не забывайте, что 0 – это тоже "empty".
0
02.08.2015, 11:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2015, 11:05

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

Как сделать так, чтобы форма отправляла
Здравствуйте. Помогите начинающему недопрограммисту освоить немyного php. Есть...

Форма обратной связи не доставляет письма если в поле емейл прописан ***@mail.ru
Очень трудно в двух словах сформулировать эту проблему. Короче, форма имеет три...


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

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

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