Проверка введенных данных на PHP, отправка заполненной формы на почту

Проверка введенных данных на PHP, отправка заполненной формы на почту

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Проверка введенных данных на PHP, отправка заполненной формы на почту

Проверка введенных данных на PHP, отправка заполненной формы на почту

www.homa.xp3.biz

В нашем примере у нас 5 полей, которые необходимо заполнить:

- имя

- сообщение

- e-mail

- контактный телефон

- контрольное число для защиты

Помимо простой проверки на пустоту поля, мы покажем как проверить правильно ли введен e-mail и телефон

Проверять поля мы будем с помощью PHP. В последнее поле необходимо ввести определенное число (для защиты от автоматического заполнения).

Уведомление об ошибке в заполнении формы появится после перезагрузки страницы.

Делаем, создаем файл index.php и пишем туда следующую форму:


<form action=index.php method=post>

Ваше Имя:<p>

<input type=text name=uname value="<?=@$uname?>" class=vvod>

<p>

<span class=error><?=@$e1?></span>

<p>

Текст Сообщения:<p>

<textarea name=utext rows=10 class=vvod_textarea><?=@$utext?></textarea>

<p>

<span class=error><?=@$e2?></span>

<p>

Ваш E-Mail:<p>

<input type=text name=umail value="<?=@$umail?>" class=vvod>

<p>

<span class=error><?=@$e3;?></span>

<p>

Контактный телефон (например XXX-XX-XX):<p>

<input type=text name=uphone value="<?=@$uphone?>" class=vvod>

<p>

<span class=error><?=@$e4?></span>

<p>

Выбор:<p>

<select name=select class=vvod>

<option value=1 <?@$select==1 ? print"selected":false?>>1</option>

<option value=2 <?@$select==2 ? print"selected":false?>>2</option>

<option value=3 <?@$select==3 ? print"selected":false?>>3</option>

</select>

<p><p>

Checkbox:<p>

<input type=checkbox value=1 name=box1 <?@$box1==1 ? print"checked":false?>>1<p>

<input type=checkbox value=2 name=box2 <?@$box2==2 ? print"checked":false?>>2<p>

<input type=checkbox value=3 name=box3 <?@$box3==3 ? print"checked":false?>>3<p>

<p>

Radio:<p>

<input type=radio name=radio value=1 <?@$radio==1 ? print"checked":false?>>1<p>

<input type=radio name=radio value=2 <?@$radio==2 ? print"checked":false?>>2<p>

<input type=radio name=radio value=3 <?if(@$radio==3) {print"checked";}if(empty($_POST[radio])){print"checked";}?>>3<p>

<p>

Введите результат 24*2=?:<p>

<input type=text name=umath value="<?=@$umath?>" class=vvod>

<p>

<span class=error><?=@$e5?></span>

<input type=hidden name=go value=5><p>

<button type=submit>Отправить</button>

</form>

Вы заметили, что в значение полей (value=) мы вставили код php.

Что дает данный код?

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

Вот данный код как раз и спасает ситуацию, поля которые были заполнены останутся заполненными.

Форма готова. Пишем скрипт проверки. Разместим его перед формой


<?if(isset($_POST["go"])):

$e1=null;

$uname=trim($_POST["uname"]);

$uname=strip_tags($uname);//вырезаем теги

//конвертируем специальные символы в мнемоники HTML

$uname=htmlspecialchars($uname,ENT_QUOTES);

//на некоторых серверах автоматически добавляются обратные слеши к кавычкам, вырезаем их

$uname=stripslashes($uname);

if(strlen($uname)=="0"):

$e1.="Заполните поле 'Ваше имя'<p>";

endif;

$e2=null;

$utext=trim($_POST["utext"]);

$utext=strip_tags($utext);

$utext=htmlspecialchars($utext,ENT_QUOTES);

$utext=stripslashes($utext);

if(strlen($utext)=="0"):

$e2.="Заполните поле 'Текст Сообщения'<p>";

endif;

$e3=null;

$umail=trim($_POST["umail"]);

$umail=strip_tags($umail);

$umail=htmlspecialchars($umail,ENT_QUOTES);

$umail=stripslashes($umail);

if(!filter_var($umail,FILTER_VALIDATE_EMAIL)):

$e3.="Неверное значение<p>";

endif;

$e4=null;

$uphone=trim($_POST["uphone"]);

$uphone=strip_tags($uphone);

$uphone=htmlspecialchars($uphone,ENT_QUOTES);

$uphone=stripslashes($uphone);

if(strlen($uphone)=="0"):

$e4.="Заполните поле 'Контактный телефон'<p>";

elseif((strlen($uphone)>0)&&(!preg_match("/^[0-9-]+$/",$uphone))):

$e4.="Неверный формат<p>";

endif;

//получаем данные из select

$select=trim($_POST[select]);

$select=strip_tags($select);

$select=htmlspecialchars($select,ENT_QUOTES);

$select=stripslashes($select);

if(!empty($_POST["box1"])){$box1=trim($_POST["box1"]);}

if(!empty($_POST["box2"])){$box2=trim($_POST["box2"]);}

if(!empty($_POST["box3"])){$box3=trim($_POST["box3"]);}

if(!empty($_POST[radio])){$radio=trim($_POST[radio]);}

$e5=null;

$umath=trim($_POST["umath"]);

$umath=strip_tags($umath);

$umath=htmlspecialchars($umath,ENT_QUOTES);

$umath=stripslashes($umath);

if($umath!="48"):

$e5.="Неверный результат<p>";

endif;

$eEn=$e1.$e2.$e3.$e4.$e5;

if($eEn==null):

$dt=date("d.m.Y, H:i:s");//дата и время

$mail="my@email.ru";//e-mail куда уйдет письмо

$title="Форма проверки введенных данных";//заголовок (тема) письма

//конвертируем

$title=iconv("utf-8","windows-1251",$title);

$title=convert_cyr_string($title,"w","k");

$utext=str_replace("\r\n","<p>",$utext);//обрабатываем

$mess="Имя: $uname<p>";

$mess.="Сообщение: $utext<p>";

//ссылка на e-mail

$mess.="E-Mail: <a href='mailto:$umail'>$umail</a><p>";

$mess.="Телефон: $uphone<p>";

$mess.="Дата и Время: $dt</body></html>";

//конвертируем

$mess=iconv("utf-8","windows-1251",$mess);

$mess=convert_cyr_string($mess,"w","k");

$headers="MIME-Version:1.0\r\n";

$headers.="Content-Type:text/html;charset=koi8-r\r\n";

$headers.="From: $umail\r\n";//откуда письмо

mail($mail,$title,$mess,$headers);//отправляем

//выводим уведомление об успехе операции и перезагружаем страничку

print"<script>

<!--

alert('Ваше сообщение отправлено! Спасибо!');

function reload(){location='index.php'};

setTimeout('reload()',0);

-->

</script>";

endif;

endif;

?>

Ошибки заполнения $e1-$e5 можно разместить в удобном для Вас месте на странице.

Демонстрация. Проверка введенных данных на PHP, отправка заполненной формы на почту

Ваше Имя:

Текст Сообщения:

Ваш E-Mail:

Контактный телефон (например XXX-XX-XX):

Выбор:

Checkbox:

1

2

3

Radio:

1

2

3

Введите результат 24*2=?:

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович:
8-965-148-98-02, diplom07@mail.ru.
Печатать страницу: Проверка введенных данных на PHP, отправка заполненной формы на почту

Проверка введенных данных на PHP, отправка заполненной формы на почту, Проверка, введенных, данных, на, PHP, отправка, заполненной, формы, на, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, Создание сайтов, web-программирование, seo-продвижение, создание и раскрутка сайтов, вбиваю в топ-10, как гвозди, попробуйте бесплатно, Создание сайтов, web-программирование, seo-продвижение, Проверка, введенных, данных, на, PHP, отправка, заполненной, формы, на, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, раскрутка сайтов, Вбиваю в ТОП-10, как гвозди, раскрутка сайтов, Делаю и раскручиваю сайты, Дмитрий Владимирович

×

Ваше письмо