Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 12

php форма обратной связи и боты

02.07.2012, 18:50. Показов 1931. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую! столкнулся вот с такой проблемой. есть форма с методом post по клику по кнопке вызывается отдельный файл mail.php и все данные отправляются на ящик админа сайта.

Код формы:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
         <form action="<?php bloginfo('stylesheet_directory');?>/mail.php" method="post" id="zakaz">
         <input type="text" name="name" class="qwertyu" />
            <h3>Что Вас интересует</h3>
        <textarea cols="122" rows="10" name='info' ></textarea><br />
        <table border="0" cellspacing="0">
  <tr>
    <td><input type="text" name="namee" size="25" placeholder="Ваше имя" required /></td>    
    <td><input type="tel" name="tel" size="25" placeholder="Номер телефона" required/></td>
    <td><input type="text" name="mail" size="25" placeholder="Укажите свой email" required /></td>
    <td><input type="text" name="clok" size="25" placeholder="Удобное время звонка" /></td>
  </tr>
</table>
        <input name="submit" type="submit" id="submit" value="Отправить заказ"/>
 
            </form>
Код обработчика формы:
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
<?php
if ($_POST['name'] != ''){
    echo "Ваше сообщение помеченно как спам";
 
}
else{
if (isset($_POST['info'])) {$body = $_POST['info'];}
if (isset($_POST['namee'])) {$name = $_POST['namee'];}
if (isset($_POST['tel'])) {$tel = $_POST['tel'];}
if (isset($_POST['email'])) {$email = $_POST['mail'];}
if (isset($_POST['clok'])) {$clok = $_POST['clok'];}
 
 
$address = "123456789@yandex.ru";
$sub ="Заказ обратного звонка";
$mes = "Имя: $name \nE-mail: $email \nНомер телефона: $tel \nУдобное время звона: $clok \nТекст: $info";
$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
if ($send == 'true')
{
echo "Сообщение отправлено, теперь Вы можете вернуться обратно и продолжить чтение сайта";
}
else 
{
echo "Сообщение не отправлено, проверьте правильность заполнения полей и попробуйте снова";
}
}
?>
Форма работает отлично, но получил жалобы что приходят пустые сообщения от формы. Раскинув мозгами понял, что если перейти напрямую к файлу обработчика по ссылке http://namesite.ru/..../mail.php отсылается письмо на емайл с пустыми полями. Скорей всего либо поисковики либо боты сканируют сайт, подскажите как решить эту проблему с отправкой писем с пустыми полями?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.07.2012, 18:50
Ответы с готовыми решениями:

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

Форма обратной связи
Добрый день, Уважаемые специалисты! Не высылается сообщение при отправке из формы обратной связи. Выкидывает на страницу с ошибкой 404. ...

Форма обратной связи
Всем привет! Возникла проблема, уже не знаю как решить ее (( Суть в следующем: есть два хостинга (дешманских), оба на reg.ru на 1м...

6
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
03.07.2012, 06:07
В начале кода обработчика:
PHP
1
2
if ($_SERVER['REQUEST_METHOD'] != 'POST')
    die('Только post запросы!');
1
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 12
03.07.2012, 08:14  [ТС]
Евгений М., спасибо, помогло!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.07.2012, 10:10
а можно просто проверять - нажимали клавишу формы или нет
PHP
1
2
if(isset($_POST['submit'])) 
{ //выполняете код }
правда если register_globals = on..
0
 Аватар для tabber
37 / 41 / 3
Регистрация: 10.10.2010
Сообщений: 364
03.07.2012, 10:43
проверяют обычно на пустоту, если пустое - делай редирект на форму
0
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 12
06.07.2012, 12:55  [ТС]
еще один вопрос: сообщение на почту приходят без адреса отправителя, где ошибка?
Миниатюры
php форма обратной связи и боты  
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
06.07.2012, 13:51
так вы просто не проверяете что там ввели вот вам и приходят пустые поля
required - достаточно один пробел поставить и все)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2012, 13:51
Помогаю со студенческими работами здесь

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

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

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

Форма обратной связи
Сделал send.php &lt;?php if (isset($_POST)) {$name = $_POST;} if (isset($_POST)) {$email = $_POST;} if (isset($_POST)) {$message =...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru