Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Prinfire
6 / 6 / 1
Регистрация: 20.10.2013
Сообщений: 88

Как сделать проверку ввода текста в обратной связи?

02.03.2014, 01:31. Показов 1966. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется обратная связь:
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
28
29
<?php
 /* Здесь проверяется существование переменных */
 if (isset($_POST['name'])) {$name = $_POST['name'];}
 if (isset($_POST['country'])) {$country = $_POST['country'];}
 if (isset($_POST['city'])) {$city = $_POST['city'];}
 if (isset($_POST['street'])) {$street = $_POST['street'];}
 if (isset($_POST['phone'])) {$tel = $_POST['tel'];}
 if (isset($_POST['mail'])) {$mail = $_POST['mail'];}
 if (isset($_POST['color'])) {$color = $_POST['color'];}
 if (isset($_POST['message'])) {$message = $_POST['message'];}
 
/* Сюда впишите свою эл. почту */
 $address = "@yandex.com";
 $subject = "Новый заказ с сайта";
 
/* А здесь прописывается текст сообщения, \n - перенос строки */
 $mes = "Имя: $name \nСтрана (область, регион): $country \nГород, индекс: $city \nУлица, дом, квартира: $street \nТелефон: $tel \nE-mail: $mail \nЦвет: $color \nКомментарий: $message";
 
/* А эта функция как раз занимается отправкой письма на указанный вами email */
 $send = mail ($address,$subject,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$mail");
if ( ! $send)
 {
 echo "Сообщение не отправлено";
 }
 else 
 {
 echo "Сообщение отправлено";
 }
?>
Как сделать что бы пользователь заполнил все поля и только на английском языке с добавлением цифр и знаков для телефона и e-mail?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2014, 01:31
Ответы с готовыми решениями:

Как сделать проверку формы обратной связи на заполнение?
Как сделать скрипт, чтобы нельзя было отправить пустую форму обратной связи. Вот код формы: &lt;form action=&quot;&quot;...

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

Как сделать проверку связи до оплаты услуг
Доброго вечера! У нас возникла проблемка, сейчас попробую описать ее. Терминал, независимо от того, есть связь с хостом или нет,...

13
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
02.03.2014, 04:40
Цитата Сообщение от Prinfire Посмотреть сообщение
Имеется обратная связь:
Имеется обработка обратной связи!, а самой формы связи - не имеется!
Выложите форму которой посылаете данные - постараемся помочь.
0
 Аватар для Prinfire
6 / 6 / 1
Регистрация: 20.10.2013
Сообщений: 88
02.03.2014, 13:57  [ТС]
Цитата Сообщение от MVS76 Посмотреть сообщение
Имеется обработка обратной связи!, а самой формы связи - не имеется!
Выложите форму которой посылаете данные - постараемся помочь.
Прошу прощения, думал не понадобиться данный код, т.к. в интернете читал информацию об этом и там нужно было только в обработчике добавить пару функций, но у меня ничего не получилось!

Сам код формы:
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
<form action="process1.php" class="contactForm33" name="cform3" method="post" id="contactForm3">
            <h2>Заполните правильно форму<br />на английском языке</h2>
            <div class="input_boxes">
 
                <input placeholder="ФИО (например: Ivanov Ivan Ivanovich):" type="text" value="" name="name" /><br />
 
<input placeholder="Страна (область, регион):" type="text" value="" name="country" /><br />
 
<input placeholder="Город, индекс:" type="text" value="" name="city" /><br />
 
<input placeholder="Улица, дом, квартира:" type="text" value="" name="street" /><br/>
 
<input placeholder="Введите телефон:" type="text" value="" name="tel"><br />
 
<input placeholder="Введите e-mail:" type="text" value="" name="mail"><br />
 
<p><select class="color" name="color">
   <option>Выберите цвет:</option>
   <option value="белый">белый</option>
   <option value="розовый">розовый</option>
   <option value="голубой">голубой</option>
   </select></p>
 
<input placeholder="Комментарий:" type="text" value="" name="message" /><br />
 
             </div>   
             <label class="button"><input class="submit1" type="submit" name="submit1" value="Заказать" onfocus="this.blur()"  /></label>
        </form>
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
02.03.2014, 20:02
Примерно как-то так, а вообще это лучше делать на js.
Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
<?php
// Здесь проверяються переменные
if (!preg_match("/^[a-z]+$/i",$_POST['name'])) { echo 'Заполните правильно поле "name"<br>'; } else { $name = $_POST['name']; }
if (!preg_match("/^[a-z]+$/i",$_POST['country'])) { echo 'Заполните правильно поле "country"<br>'; } else { $country = $_POST['country']; }
if (!preg_match("/^[a-z]+$/i",$_POST['city'])) { echo 'Заполните правильно поле "city"<br>'; } else { $city = $_POST['city']; }
if (!preg_match("/^[a-z0-9]+$/i",$_POST['street'])) { echo 'Заполните правильно поле "street"<br>'; } else { $street = $_POST['street']; }
if (!preg_match("/^[0-9-+]+$/i",$_POST['tel'])) { echo 'Заполните правильно поле "tel"<br>'; } else { $tel = $_POST['tel']; }
if (!preg_match("/^.*?@.*?\..*?$/i",$_POST['mail'])) { echo 'Заполните правильно поле "mail"<br>'; } else { $mail = $_POST['mail']; }
$color = $_POST['color'];
$message = $_POST['message'];  // необязательное поле - не проверяем
 
// если все верно - отправляем
 if (!empty($name) && !empty($country) && !empty($city) && !empty($street) && !empty($tel) && !empty($mail) && !empty($color)) {
 
// Сюда впишите свою эл. почту
 $address = "ххххх@хх.хх";
 $subject = "Новый заказ с сайта";
 
// А здесь прописывается текст сообщения, \n - перенос строки
 $mes = "Имя: $name \nСтрана (область, регион): $country \nГород, индекс: $city \nУлица, дом, квартира: $street \nТелефон: $tel \nE-mail: $mail \nЦвет: $color \nКомментарий: $message";
 
// А эта функция как раз занимается отправкой письма на указанный вами email
 $send = mail($address,$subject,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$mail");
if (!$send)
 {
 echo "Сообщение не отправлено";
 }
 else 
 {
 echo "Сообщение отправлено";
 }
 }
?>
1
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
02.03.2014, 20:10
Цитата Сообщение от MVS76 Посмотреть сообщение
а вообще это лучше делать на js.
чем лучше?
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
02.03.2014, 20:13
Проверка красивее - нет редиректов, да и всяких подсветок можно поставить, для лучшего восприятия, какое именно поле с ошибкой
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
02.03.2014, 20:28
Цитата Сообщение от MVS76 Посмотреть сообщение
Проверка красивее
ну если только как вспомогательная проверка
0
 Аватар для Prinfire
6 / 6 / 1
Регистрация: 20.10.2013
Сообщений: 88
02.03.2014, 21:22  [ТС]
MVS76, спасибо больше за обработчик, сейчас обязательно проверю. Не подскажешь как еще сделать редирект в ней? Писал header ('Location url') дак не работает. Я еще хотел сделать редирект с задержкой, что бы выбило текст об успешной отправке и написало что сейчас будете перенаправлены для оплаты. Для этого перепробовал и js и html и php, уже 2-ой день только с этой формой мучаюсь!
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
02.03.2014, 21:46
с редиректом
Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
36
<?php
// Здесь проверяються переменные
if (!preg_match("/^[a-z]+$/i",$_POST['name'])) { echo 'Заполните правильно поле "name"<br>'; } else { $name = $_POST['name']; }
if (!preg_match("/^[a-z]+$/i",$_POST['country'])) { echo 'Заполните правильно поле "country"<br>'; } else { $country = $_POST['country']; }
if (!preg_match("/^[a-z]+$/i",$_POST['city'])) { echo 'Заполните правильно поле "city"<br>'; } else { $city = $_POST['city']; }
if (!preg_match("/^[a-z0-9]+$/i",$_POST['street'])) { echo 'Заполните правильно поле "street"<br>'; } else { $street = $_POST['street']; }
if (!preg_match("/^[0-9-+]+$/i",$_POST['tel'])) { echo 'Заполните правильно поле "tel"<br>'; } else { $tel = $_POST['tel']; }
if (!preg_match("/^.*?@.*?\..*?$/i",$_POST['mail'])) { echo 'Заполните правильно поле "mail"<br>'; } else { $mail = $_POST['mail']; }
$color = $_POST['color'];
$message = $_POST['message'];  // необязательное поле - не проверяем
 
// если все верно - отправляем
 if (!empty($name) && !empty($country) && !empty($city) && !empty($street) && !empty($tel) && !empty($mail) && !empty($color)) {
 
// Сюда впишите свою эл. почту
 $address = "ххххх@ххх.хх";
 $subject = "Новый заказ с сайта";
 
// А здесь прописывается текст сообщения, \n - перенос строки
 $mes = "Имя: $name \nСтрана (область, регион): $country \nГород, индекс: $city \nУлица, дом, квартира: $street \nТелефон: $tel \nE-mail: $mail \nЦвет: $color \nКомментарий: $message";
 
// А эта функция как раз занимается отправкой письма на указанный вами email
 $send = mail($address,$subject,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$mail");
if (!$send)
 {
 echo "Сообщение не отправлено";
 }
 else 
 {
 header('Refresh: 5; URL=http://www.xxx.ua/pay.php');
 echo "Сообщение отправлено<br>";
 echo 'Через 5 сек. вы будете перенаправлены на страницу оплаты';
 exit;
 }
 }
?>
0
 Аватар для Prinfire
6 / 6 / 1
Регистрация: 20.10.2013
Сообщений: 88
02.03.2014, 22:03  [ТС]
Цитата Сообщение от MVS76 Посмотреть сообщение
с редиректом
Обработчик работает отлично, но редирект почему то не происходит! Проверил в 3-ех браузерах.
У Вас редирект происходил в данном случае?
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
02.03.2014, 22:09
Конечно, а зачем-бы Я выложил нерабочий код.
0
 Аватар для Prinfire
6 / 6 / 1
Регистрация: 20.10.2013
Сообщений: 88
02.03.2014, 22:20  [ТС]
Цитата Сообщение от MVS76 Посмотреть сообщение
Конечно, а зачем-бы Я выложил нерабочий код.
А в каком браузере проверяли? Я просто брал отдельный html код с формой и обработчик, в данном случае все равно редиректа небыло!
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
02.03.2014, 22:41
Лучший ответ Сообщение было отмечено Prinfire как решение

Решение

Перекодируйте файл "process1.php" в кодировку UTF-8 без BOM, и укажите кодировку в самом файле, вот готовый вариант:
Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
36
<?php
header("Content-Type: text/html; charset=UTF-8");
// Здесь проверяються переменные
if (!preg_match("/^[a-z]+$/i",$_POST['name'])) { echo 'Заполните правильно поле "name"<br>'; } else { $name = $_POST['name']; }
if (!preg_match("/^[a-z]+$/i",$_POST['country'])) { echo 'Заполните правильно поле "country"<br>'; } else { $country = $_POST['country']; }
if (!preg_match("/^[a-z]+$/i",$_POST['city'])) { echo 'Заполните правильно поле "city"<br>'; } else { $city = $_POST['city']; }
if (!preg_match("/^[a-z0-9]+$/i",$_POST['street'])) { echo 'Заполните правильно поле "street"<br>'; } else { $street = $_POST['street']; }
if (!preg_match("/^[0-9-+]+$/i",$_POST['tel'])) { echo 'Заполните правильно поле "tel"<br>'; } else { $tel = $_POST['tel']; }
if (!preg_match("/^.*?@.*?\..*?$/i",$_POST['mail'])) { echo 'Заполните правильно поле "mail"<br>'; } else { $mail = $_POST['mail']; }
$color = $_POST['color'];
$message = $_POST['message'];  // необязательное поле - не проверяем
 
// если все верно - отправляем
 if (!empty($name) && !empty($country) && !empty($city) && !empty($street) && !empty($tel) && !empty($mail) && !empty($color)) {
 
// Сюда впишите свою эл. почту
 $address = "ххххх@ххх.хх";
 $subject = "Новый заказ с сайта";
 
// А здесь прописывается текст сообщения, \n - перенос строки
 $mes = "Имя: $name \nСтрана (область, регион): $country \nГород, индекс: $city \nУлица, дом, квартира: $street \nТелефон: $tel \nE-mail: $mail \nЦвет: $color \nКомментарий: $message";
 
// А эта функция как раз занимается отправкой письма на указанный вами email
 $send = mail($address,$subject,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$mail");
if (!$send)
 {
 echo "Сообщение не отправлено";
 }
 else 
 {
 header('Refresh: 5; URL=http://www.xxx.ua/pay.php');
 echo "Сообщение отправлено!<br>Через 5 сек. вы будете перенаправлены на страницу оплаты";
 exit;
 }
 }
?>

Кстати, работает во всех браузерах ...
1
 Аватар для Prinfire
6 / 6 / 1
Регистрация: 20.10.2013
Сообщений: 88
03.03.2014, 11:47  [ТС]
Цитата Сообщение от MVS76 Посмотреть сообщение
Перекодируйте файл "process1.php" в кодировку UTF-8 без BOM, и укажите кодировку в самом файле, вот готовый вариант:
Огромное спасибо, все отлично работает, как и положено!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2014, 11:47
Помогаю со студенческими работами здесь

Как сделать паузу в форме обратной связи?
Здравствуйте. Помогите, пожалуйста. Есть форма обратной связи Contact Form 7 сообщение из которой, мгновенно отправляется на яндекс...

Как сделать правильное от отображение формы обратной связи?
Добрый день! Недавно у меня возникли проблемы с формой обратной связи - сообщения не приходили. Сайт я делал в Adobe Muse. Написал в...

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

Как сделать чтобы форма обратной связи пустой не отправлялась?
Как сделать чтобы форма обратной связи пустой не отправлялась? Вот код формы которая есть: &lt;?php $sendto =...

Как сделать форму обратной связи, чтобы сообщения приходили на емайл?
Привет всем! На joomla 2.5, весь интернет перегуглил не могу найти нормальную форму обратной связи, если что-то и найду, то при тесте...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru