Быстрая помощь по сайту, или заполнение всех полей


Редко у кого получается с первого раз создать сайт без дальнейших исправлений. Даже если все согласовано с дизайнером, верстальщик натянул дизайн на кмс, программист все сделал внутри и со скриптами, но проходит какое-то время, и вы понимаете, что можно сделать и лучше. Где-то что-то поправить в верстке, сделать адаптивным, изменить меню, добавить эффектов и анимации, поставить защиту от спама, перевести на защищенный протокол – да мало ли что может придти в голову владельцу сайта?

Например, понадобилось одному заказчику сделать так, чтобы письма с формы обратной связи приходили, если только заполнены все поля. Имя, телефон, адрес и так далее – чтобы выдавало предупреждение посетителю (потенциальному заказчику), что он не всю необходимую информацию оставил.

Смотрим внутренности сайта. Самописный движок непонятной системы. Однако, это нас не смущает. Находим файл, который отвечает за вывод формы и отправку письма (contacts.php – они так часто называются) и ищем в нем, где идет обработка после отправки запроса.

Ага, натыкаемся на такой код:

if (isset($_GET["post"])) {
	$captcha1=$_POST["captcha"] ? $_POST["captcha"] : 'bnn65mb';
	$orgname=isset($_POST["orgname"]) ? trim($_POST["orgname"]) : null;
	$adres=isset($_POST["adres"]) ? trim($_POST["adres"]) : null;
	$phones=isset($_POST["phones"]) ? trim($_POST["phones"]) : null;
	$mailfrom=isset($_POST["mailfrom"]) ? trim($_POST["mailfrom"]) : null;
	$username=isset($_POST["username"]) ? trim($_POST["username"]) : null;
	$question=isset($_POST["question"]) ? trim($_POST["question"]) : null;
Все понятно. В этих переменных и хранятся значения полей формы. Все, что нам надо сделать, это и отправлять или не отправлять письмо, в зависимости от результата. Самый простой способ сделать это так:

if (($orgname!="") &&  ($adres!="") &&  ($phones!="") &&  ($mailfrom!="") &&  ($username!="") &&  ($question!="")) {
//отправляем письмо
}

else {
echo 'Надо заполнить все поля!';
}	
Если какое-то поле формы не заполнено, то просто игнорируем отправку и пишем, что надо заполнить все поля.



Если ваш сайт на CMS WP, Joomla, OpenCart, phBB, ModX, то смело пишите мне. Мне нравится разбираться во внутренностях данных движков. В принципе я могу разобраться и с другими, в том числе и самописными, но по времени и, соответственно, по деньгам, это выйдет дороже.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, сайтостроение, php




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Программы для работы с сайтами
Урок 15. Параллельный LINQ
Сколько памяти расходует мое приложение Java?