Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/32: Рейтинг темы: голосов - 32, средняя оценка - 4.81
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28

Отправка данных из двух типов форм. Как реализовать PHP обработчик

10.02.2014, 07:13. Показов 6194. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Имеется необходимость размещения на сайте двух типов форм - "формы заказа в 1 клик" и "расширенной формы".

Форма заказа в 1 клик расположена на всех страницах сайта, кроме страницы "Оформление заказа" - ибо на ней расположена "расширенная форма" заказа.

Форма 1:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<div id="footerForm">
    <form action="oneclick.php" method="POST" name="footerForm">
        <fieldset>
            <legend>Оформить заказ</legend>                    
            <p>Ваше имя:</p>
            <input id="textfield_1" type="text" name="name" maxlength="40">
            <p>Ваш телефон:</p>
            <input id="textfield_1" type="text" name="telephon" maxlength="16">
        </fieldset>
        <input type="submit" name="oneclick" class="button3" value="Готово">                  
    </form>
</div>
Форма 2:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<div id="orderForm">
        <form action="formdata.php" method="POST" name="orderForm">
            <fieldset><legend>ФИО</legend>                   
                <p><label>Фамилия* <input id="input" type="text" name="family" maxlength="16"></label></p>
                <p><label>Имя* <input id="input" type="text" name="name" maxlength="16"></label></p>
                <p><label>Отчество* <input id="input" type="text" name="otchestvo" maxlength="16"></label></p>
            </fieldset>
                </br>
            <fieldset><legend>Адрес доставки</legend>                  
                <p><label>Почтовый индекс* <input id="input" type="text" name="index" maxlength="6"></label></p>
                <p><label>Область (край), район* <input id="input" type="text" name="region" maxlength="50"></label></p>
                <p><label>Город* <input id="input" type="text" name="sity" maxlength="16"></label></p>
                <p><label>Адрес (улица, дом, квартира...)* <input id="input" type="text" name="adress" maxlength="100"></label></p>
            </fieldset>
                </br>
            <fieldset><legend>Контакты</legend>                 
                <p><label>Сотовый телефон* <input id="input" type="text" name="cellphon" maxlength="16"></label></p>
                <p><label>Домашний телефон <input id="input" type="text" name="telephon" maxlength="16"></label></p>
                <p><label>e-mail <input id="input" type="text" name="email" maxlength="35"></label></p>
            </fieldset>
                </br>
            <fieldset><legend>Тип и Количество</legend>                       
                <p>Отбеливающая
                <select name="otbel">
                    <option>0</option>
                    <option>1</option>
                    <option>2</option>
                    <option selected>3</option>
                    <option>4</option>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                    <option>10</option>
                </select>
                </p>
                <p>Травяная
                <select name="trav">
                    <option>0</option>
                    <option>1</option>
                    <option>2</option>
                    <option selected>3</option>
                    <option>4</option>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                    <option>10</option>
                </select>
                </p>
            </fieldset>
            </br>
            <fieldset>
                                <legend>Дополнительная информация</legend>
                <p><textarea name="message"  maxlength="1000">Напишите здесь комментарии к заказу, если требуется...        </textarea></p>                 
            </fieldset>
                <p><input type="submit" name="sandOrder" class="button3" value="Отправить"></p>                    
        </form>
    </div>
Обработчик:

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
37
38
39
40
41
42
43
44
45
46
47
<?php
if (isset($_POST['sandOrder'])) { // проверяем была ли нажата кнопка ОТПРАВИТЬ
 // получаем данные из формы и заносим их в массивы
 // здесь же нужно обработать все данные на предмет длины строки, запрещенных символов и так далее
 $family=$_POST[family];
 $name=$_POST[name];
 $otchestvo=$_POST[otchestvo];
 $index=$_POST[index];
 $region=$_POST[region];
 $sity=$_POST[sity];
 $adress=$_POST[adress];
 $cellphon=$_POST[cellphon];
 $telephon=$_POST[telephon];
 $email=$_POST[email];
 $otbel=$_POST[otbel];
 $trav=$_POST[trav];
 $message=$_POST[message];
 // формируем заголовок и тело письма
 $headers="Content-type: text/html; charset=utf-8 \r\n"; 
 $headers="From: sait.org <noreply@sait.org>\r\n"; 
 $thm="Заказ зубной пасты";
 $msg="Фамилия: $family
 Имя: $name
 Отчество:
 $otchestvo
 Индекс: $index
 Область: $region
 Город: $sity
 Адрес: $adress
 Сотовый телефон: $cellphon
 Домашний телефон: $telephon
 Емайл: $email
 Отбеливающая: $otbel
 Травяная: $trav
 Дополнительно:
 $message";
 $mail_to="gmail@gmail.com"; // почта куда отправлять письмо
 // Отправляем почтовое сообщение
 $result = mail($mail_to, $thm, $msg, $headers); 
 if ($result) {
 echo "<p>Ваш заказ принят в обработку! В ближайшее время мы Вам перезвоним для уточнения деталей.</p>";
}
 else {
 echo "<p>Похоже возникла ошибка, пожалуйста повторите отправку данных!</p>";
}
}
?>
Собственно вопросы:

- Имеем два типа форм, с разным количеством полей (в урезанной форме данные совпадают с двумя полями из расширенной), необходимо отправлять данные из обоих форм (на выбор пользователя) - как это реализовать?

- Что нужно дописать в обработчик, чтобы после вывода сообщения об успешной отправке данных, производился редирект на главную страницу сайта?

Заранее спасибо за уделённое время!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2014, 07:13
Ответы с готовыми решениями:

Отправка данных из <span> в обработчик PHP
Это вообще возможно? &lt;form id=&quot;mama&quot; method=&quot;POST&quot;&gt; &lt;span name=&quot;papa&quot;&gt;&lt;/span&gt; &lt;/form&gt; У меня не работает, функция...

php обработчик форм
Ребят. Я совсем дурак в php, а мне нужно обработчик написать для формы, тоесть проверить верно ли все введено и записать полученные...

Обработчик php форм html
Мне нужно из 3 форм на отдельных страницах переслать данные в 1 php обработчик. Причём После завершения заполнения 1 формы человек должен...

57
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
10.02.2014, 14:18
в чем проблема сделать на каждую форму свой обработчик?
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 07:20  [ТС]
Засада в том, что я в php вообще полный ноль. Приведенный обработчик я взял в инете, подредактировал под свои нужды методом тыка... Пробовал с двумя обработчиками, не получилось.

В настоящее время обработчик отправляет данные через раз - то полностью нормально, то не все поля отправит. Со второй формой (укороченной) вообще засада - тупо не работает!, она обращается к своему обработчику, но ничего не происходит, хотя код "укороченного" обработчика проверен на соответствие с "расширенным" обработчиком - все одинаково.


В общем куда дальше копать я просто не знаю, т.к. область знаний здесь вообще не моя. Поэтому прошу помощи у профи в этой теме.

Я не удивлюсь, если в коде обработчика есть ошибки, которых я не вижу из-за отсутствия знаний по php.

Добавлено через 2 часа 10 минут
Перепробовал уже наверное все варианты, с двумя обработчиками не получается - на большой форме все работает, на маленькой все стопорится на обращении к обработчику...

Кроме того, большая форма выдает ошибку в лог:

Use of undefined constant cellphon - assumed 'cellphon'
Насколько я понимаю он ругается на отсутствие кавычек на переменных, но какие и куда ставить - я без понятия.

Добавлено через 20 минут
C ошибкой проблема решена. Остальные вопросы открыты.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 07:47
Читайте, пробуйте методом научного тыка - Работа с формами в PHP
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 08:23  [ТС]
Спасибо за ссылку, но как-то не хочется тратить неделю на изучение материалов и научный тык, ради 50 строчек кода в итоге. Я уже двое суток тыкаюсь в этот обработчик, и пока ничего не добился.

Если есть такие люди, которые могут конкретно указать на ошибки, или помочь с написанием кода, то буду благодарен.
0
11.02.2014, 09:16

Не по теме:

если вы будете читать по слову в день - то да, наверное, неделя. А так - от силы пара часов. Впрочем, ваше право.

0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 09:52  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение

Не по теме:

если вы будете читать по слову в день - то да, наверное, неделя. А так - от силы пара часов. Впрочем, ваше право.

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

Ну судя по активности в теме, и придётся самому всё делать.

Не понимаю, Вам религия не позволяет написать ГДЕ ошибки в моём обработчике? Спецу, который Попова редактирует на лету?

Причем приведенный Вами пример на страничке по вашей ссылке - мне не подойдет (хотя я и пытаюсь в данный момент времени его научно протЫкать).

Вопрос-то был "как обработать данные из ДВУХ форм"...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 10:08
Цитата Сообщение от Helex Посмотреть сообщение
который Попова редактирует на лету
Попов не авторитет, он не программист, а бизнесмен.
Цитата Сообщение от Helex Посмотреть сообщение
ГДЕ ошибки в моём обработчике?
Почти везде. Такой ответ Вас устроит? Сомневаюсь.
Цитата Сообщение от Helex Посмотреть сообщение
необходимо отправлять данные из обоих форм (на выбор пользователя) - как это реализовать?
Прописать путь к одному обработчику. Там, на основе того, какая из кнопок нажата (определить можно с помощью различных названий кнопок-submit и isset), обрабатывать соответствующие поля.
Цитата Сообщение от Helex Посмотреть сообщение
Что нужно дописать в обработчик, чтобы после вывода сообщения об успешной отправке данных, производился редирект на главную страницу сайта?
PHP
1
2
3
4
5
if(все ок)
{
    header('Location: /');
    exit;
}
Цитата Сообщение от Helex Посмотреть сообщение
Не понимаю, Вам религия не позволяет написать
У меня, как бы, есть работа. И помогаю я по наличию времени и желания. А все делать за кого-то особого желания нет.
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 10:48  [ТС]
Пробую разбираться последовательно. Взял Ваш пример обработчика, и дополнил его нужными полями:

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
37
38
<?php
if( isset($_POST['family'],$_POST['name'],$_POST['otchestvo'],$_POST['index'],$_POST['region'],$_POST['sity'],$_POST['adress'],$_POST['cellphon'],$_POST['telephon'],$_POST['email'],$_POST['otbel'],$_POST['trav'],$_POST['text']) ) {
 $family = trim($_POST['family']);
 $name = trim($_POST['name']);
 $otchestvo = trim($_POST['otchestvo']);
 $index = trim($_POST['index']);
 $region = trim($_POST['region']);
 $sity = trim($_POST['sity']);
 $adress = trim($_POST['adress']);
 $cellphon = trim($_POST['cellphon']);
 $telephon = trim($_POST['telephon']);
 $email = trim($_POST['email']);
 $otbel = trim($_POST['otbel']);
 $trav = trim($_POST['trav']); 
 $text = trim($_POST['text']);
  if(empty($family) || empty($name) || empty($otchestvo) || empty($index) || empty($region) || empty($sity) || empty($adress) || empty($cellphon) || empty($email)) { //если что то не ввели
   echo 'Вы заполнили не все поля!';
  }
  else { //все поля заполнены, отправляем
   $mailto = 'mail@gmail.com';
   $subject = 'Заказ зубной пасты';
//формируем текст сообщения
   $message  = 'Сообщение от пользователя <b>'.$name.'</b>';
   $message .= 'E-mail пользователя: <a href="mailto:' . $email . '">' . $email . '</a><br />';
   $message .= 'Текст сообщения:<br />' . $family . $name . $otchestvo . $index . $region . $sity . $adress . $cellphon . $telephon . $email . $otbel . $trav . $text;
//формируем заголовки (кодировку только, остальное сами добавите по желанию)
   $headers = 'Content-type: text/html; charset=utf-8';
//отправляем письмо
   $mail = mail($mailto, $subject, $message, $headers);
//проверяем отправку
    if(TRUE === $mail) echo 'Ваше сообщение успешно отправлено!';
    else echo 'Произошла ошибка при отправке сообщения.';
//проверку можно записать короче при помощи тернарного оператора, вот так:
//  echo (TRUE === $mail) ? 'Ваше сообщение успешно отправлено!' : 'Произошла ошибка при отправке сообщения.' ;
//тогда нужно будет раскомментировать строчку выше и закомментировать строчки выше с проверкой
  }
}
?>
Путь к нему в форме прописан верно.

Кнопка отправки:

HTML5
1
<input type="submit" name="isset" class="button3" value="Отправить">
После нажатия кнопки открывается пустая страница, ничего не происходит...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 10:53
а код всей формы можно посмотреть?
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 11:06  [ТС]
Вот она:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<div id="orderForm">
                <form action="formdata.php" method="POST" name="orderForm">
                    <fieldset><legend>ФИО</legend>                   
                        <p><label>Фамилия* <input id="input" type="text" name="family" maxlength="16"></label></p>
                        <p><label>Имя* <input id="input" type="text" name="name" maxlength="16"></label></p>
                        <p><label>Отчество* <input id="input" type="text" name="otchestvo" maxlength="16"></label></p>
                    </fieldset>
                    </br>
                    <fieldset><legend>Адрес доставки</legend>                  
                        <p><label>Почтовый индекс* <input id="input" type="text" name="index" maxlength="6"></label></p>
                        <p><label>Область (край), район* <input id="input" type="text" name="region" maxlength="50"></label></p>
                        <p><label>Город* <input id="input" type="text" name="sity" maxlength="16"></label></p>
                        <p><label>Адрес (улица, дом, квартира...)* <input id="input" type="text" name="adress" maxlength="100"></label></p>
                    </fieldset>
                    </br>
                    <fieldset><legend>Контакты</legend>                 
                        <p><label>Сотовый телефон* <input id="input" type="text" name="cellphon" maxlength="16"></label></p>
                        <p><label>Домашний телефон <input id="input" type="text" name="telephon" maxlength="16"></label></p>
                        <p><label>e-mail <input id="input" type="text" name="email" maxlength="35"></label></p>
                    </fieldset>
                    </br>
                    <fieldset><legend>Тип и Количество</legend>                       
                        <p>Отбеливающая
                            <select name="otbel">
                                <option>0</option>
                                <option>1</option>
                                <option>2</option>
                                <option selected>3</option>
                                <option>4</option>
                                <option>5</option>
                                <option>6</option>
                                <option>7</option>
                                <option>8</option>
                                <option>9</option>
                                <option>10</option>
                            </select>
                        </p>
                        <p>Травяная
                            <select name="trav">
                                <option>0</option>
                                <option>1</option>
                                <option>2</option>
                                <option selected>3</option>
                                <option>4</option>
                                <option>5</option>
                                <option>6</option>
                                <option>7</option>
                                <option>8</option>
                                <option>9</option>
                                <option>10</option>
                            </select>
                        </p>
                    </fieldset>
                    </br>
                    <fieldset><legend>Дополнительная информация</legend>
                        <p><textarea name="text"  maxlength="1000">Напишите здесь комментарии к заказу, если требуется...</textarea></p>                    
                    </fieldset>
                    <p><input type="submit" name="isset" class="button3" value="Отправить"></p>                    
                </form>
            </div>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 11:54
Должно работать. В начале страницы пропишите
PHP
1
2
3
4
5
6
<?php
error_reporting(-1);
ini_set('display_errors', true);
 
echo '<pre>';
var_dump($_POST);
Результат вывода сюда

Добавлено через 2 минуты
З.Ы. И я говорил разделять формы и проверять нажатия кнопки с помощью isset. Это не значит, что надо назвать кнопку "isset", а значит, что надо проверять, какая кнопка была нажата.
PHP
1
2
3
4
5
6
7
8
if(isset($_POST['button1']))
{
    //код обработки первой формы
}
if(isset($_POST['button2']))
{
    //код обработки второй формы
}
1
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 21:36  [ТС]
Вот спасибо Вам за подсказки, теперь пошла движуха, но малая форма всё равно не отправляет ничего, все стопорится на кнопке "отправить", а большая отправляет через раз (из трех попыток две письмо не получено, хотя отчеты былы что отправлено).

Отредактированный обработчик:

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
error_reporting(-1);
ini_set('display_errors', true); 
echo '<pre>';
var_dump($_POST);
if(isset($_POST['sandOrder'])) {
 $family = trim($_POST['family']);
 $name = trim($_POST['name']);
 $otchestvo = trim($_POST['otchestvo']);
 $index = trim($_POST['index']);
 $region = trim($_POST['region']);
 $sity = trim($_POST['sity']);
 $adress = trim($_POST['adress']);
 $cellphon = trim($_POST['cellphon']);
 $telephon = trim($_POST['telephon']);
 $email = trim($_POST['email']);
 $otbel = trim($_POST['otbel']);
 $trav = trim($_POST['trav']); 
 $text = trim($_POST['text']);
  if(empty($family) || empty($name) || empty($otchestvo) || empty($index) || empty($region) || empty($sity) || empty($adress) || empty($cellphon) || empty($email)) { //если что то не ввели
   echo 'Вы заполнили не все поля!';
  }
  else { //все поля заполнены, отправляем
   $mailto = 'gmai@gmail.com';
   $subject = 'Заказ зубной пасты';
//формируем текст сообщения
   $message  = 'Сообщение от пользователя <b>'.$name.'</b>';
   $message .= 'E-mail пользователя: <a href="mailto:' . $email . '">' . $email . '</a><br />';
   $message .= 'Текст сообщения:<br />' . $family . $name . $otchestvo . $index . $region . $sity . $adress . $cellphon . $telephon . $email . $otbel . $trav . $text;
//формируем заголовки (кодировку только, остальное сами добавите по желанию)
   $headers = 'Content-type: text/html; charset=utf-8';
//отправляем письмо
   $mail = mail($mailto, $subject, $message, $headers);
//проверяем отправку
    if(TRUE === $mail) echo 'Ваше сообщение успешно отправлено!';
    else echo 'Произошла ошибка при отправке сообщения.';
//проверку можно записать короче при помощи тернарного оператора, вот так:
//  echo (TRUE === $mail) ? 'Ваше сообщение успешно отправлено!' : 'Произошла ошибка при отправке сообщения.' ;
//тогда нужно будет раскомментировать строчку выше и закомментировать строчки выше с проверкой
}
}
if(isset($_POST['oneClick'])) {
 $name = trim($_POST['name1']);
 $telephon = trim($_POST['telephon1']);
  if(empty($name1) || empty($telephon1)) { //если что то не ввели
   echo 'Вы заполнили не все поля!';
  }
  else { //все поля заполнены, отправляем
   $mailto = 'gmail@gmail.com';
   $subject = 'Заказ зубной пасты';
//формируем текст сообщения
   $message  = 'Сообщение от пользователя <b>'.$name1.'</b>';   
   $message .= 'Текст сообщения:<br />' . $name1 . $telephon1;
//формируем заголовки (кодировку только, остальное сами добавите по желанию)
   $headers = 'Content-type: text/html; charset=utf-8';
//отправляем письмо
   $mail = mail($mailto, $subject, $message, $headers);
//проверяем отправку
    if(TRUE === $mail) echo 'Ваше сообщение успешно отправлено!';
    else echo 'Произошла ошибка при отправке сообщения.';
//проверку можно записать короче при помощи тернарного оператора, вот так:
//  echo (TRUE === $mail) ? 'Ваше сообщение успешно отправлено!' : 'Произошла ошибка при отправке сообщения.' ;
//тогда нужно будет раскомментировать строчку выше и закомментировать строчки выше с проверкой
}
}
?>
Вот отчет большой формы:

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
array(14) {
  ["family"]=>
  string(12) "Иванов"
  ["name"]=>
  string(8) "Иван"
  ["otchestvo"]=>
  string(16) "Иванович"
  ["index"]=>
  string(6) "000000"
  ["region"]=>
  string(6) "МСО"
  ["sity"]=>
  string(18) "Волгоград"
  ["adress"]=>
  string(36) "улица, дом, квартира"
  ["cellphon"]=>
  string(14) "8 000 000 0000"
  ["telephon"]=>
  string(14) "8 111 000 0000"
  ["email"]=>
  string(14) "email@email.ru"
  ["otbel"]=>
  string(1) "4"
  ["trav"]=>
  string(1) "2"
  ["text"]=>
  string(125) "Напишите здесь комментарии к заказу, если требуется...
 
Не требуется"
  ["sandOrder"]=>
  string(18) "Отправить"
}
Ваше сообщение успешно отправлено!
и малой формы, которая пока не отправляла ни разу:

PHP
1
2
3
4
5
6
7
8
array(3) {
  ["name1"]=>
  string(8) "Иван"
  ["telephon1"]=>
  string(14) "8 888 888 8888"
  ["oneСlick"]=>
  string(12) "Готово"
}
Куда дальше копать?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 21:40
Цитата Сообщение от Helex Посмотреть сообщение
из трех попыток две письмо не получено, хотя отчеты былы что отправлено
это, скорее всего, к хостеру
Цитата Сообщение от Helex Посмотреть сообщение
Куда дальше копать?
Цитата Сообщение от Helex Посмотреть сообщение
PHP
1
$name = trim($_POST['name1']);
Цитата Сообщение от Helex Посмотреть сообщение
if(empty($name1)
Условие истинно всегда - переменная $name1 будет empty. Соответственно, в else не заходит, письмо не отправляется
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 21:49  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Условие истинно всегда - переменная $name1 будет empty. Соответственно, в else не заходит, письмо не отправляется
Но поле то заполнено, оно не пустое при отправке.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 21:59
Helex, я специально выделил жирным красным цветом отличие. $name, может, и не пустая, но переменной $name1 в данном месте нет
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 22:31  [ТС]
KOPOJI, Понял ошибку, исправил:

PHP/HTML
1
2
$name1 = trim($_POST['name1']);
$telephon1 = trim($_POST['telephon1']);
Но все равно тот же эффект. После нажатия кнопки ничего не происходит, никакие сообщения не выводятся, отчет выглядит также:

PHP
1
2
3
4
5
6
7
8
array(3) {
  ["name1"]=>
  string(8) "Иван"
  ["telephon1"]=>
  string(14) "8 888 888 8888"
  ["oneСlick"]=>
  string(12) "Готово"
}
Разобрался куда девались письма - gmail их в спам засылал. Значит большая форма работает отлично, спасибо!

Только как мне сделать вывод данных в теле письма построчно, чтобы они не сваливались в одну строку без пробелов, типа того:

Имя: (данные из формы)
Телефон: (данные из формы)

и т.д... А то сейчас данные нечитаемы.



P.S.

С редиректом на главную, после отправки, задача отпадает - решил вывести формы на страничках в окне <iframe>, в результате пользователя не выкидывает с сайта. Думаю это не сильное нубство...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 22:35
Точно все нормально?
PHP
1
var_dump(empty($name1), empty($telephon1));
0
 Аватар для Helex
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 28
11.02.2014, 22:44  [ТС]
Вроде все внимательно проверил

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
if(isset($_POST['oneClick'])) {
 $name1 = trim($_POST['name1']);
 $telephon1 = trim($_POST['telephon1']);
  if(empty($name1) || empty($telephon1)) { //если что то не ввели
   echo 'Вы заполнили не все поля!';
  }
  else { //все поля заполнены, отправляем
   $mailto = 'anonymstudio54@gmail.com';
   $subject = 'Заказ зубной пасты';
//формируем текст сообщения
   $message  = 'Сообщение от пользователя <b>'.$name1.'</b>';   
   $message .= 'Текст сообщения:<br />' . $name1 . $telephon1;
//формируем заголовки (кодировку только, остальное сами добавите по желанию)
   $headers = 'Content-type: text/html; charset=utf-8';
//отправляем письмо
   $mail = mail($mailto, $subject, $message, $headers);
//проверяем отправку
   if(TRUE === $mail) echo 'Ваше сообщение успешно отправлено!';
   else echo 'Произошла ошибка при отправке сообщения.';
//проверку можно записать короче при помощи тернарного оператора, вот так:
//  echo (TRUE === $mail) ? 'Ваше сообщение успешно отправлено!' : 'Произошла ошибка при отправке сообщения.' ;
//тогда нужно будет раскомментировать строчку выше и закомментировать строчки выше с проверкой
}
}
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.02.2014, 22:48
Лучший ответ Сообщение было отмечено Helex как решение

Решение

ага, понятно. У вас в форме в имя кнопки закралась русская буква "С"
Цитата Сообщение от Helex Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
array(3) {
* ["name1"]=>
* string(8) "Иван"
* ["telephon1"]=>
* string(14) "8 888 888 8888"
* ["oneСlick"]=>
* string(12) "Готово"
}
oneClick, а не oneСlick. Абсурдно звучит, но все же
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2014, 22:48
Помогаю со студенческими работами здесь

Не работает обработчик форм на PHP !!!
Здравствуйте, товарищи специалисты. У меня такая проблема: сделал html форму и php обработчик так, чтоб юзер, заказывая диск, заполнял поля...

PHP обработчик для нескольких форм
На ленде несколько форм. Они практически одинаковые, может даже для php обработчика они совсем идентичные) Но в PHP я совсем плох) Помогите...

Несколько форм html на одной странице и на один обработчик php
Всем привет! Если кто сможет помочь, буду очень признателен. Дело вот в чем: Есть страница сайта, на которой находится несколько форм...

Отправка форм PHP
Здравствуйте. Я начинающий web-разработчик. Еще очень мало знаю. Решил создать простенький сайт, но столкнулся с проблемой. У меня не...

Сходство и отличие двух типов форм-факторов AT/ATX.
Определить сходство и отличие двух типов форм-факторов AT/ATX. Прошу ответы типа &quot;погугли&quot; не писать! Добавлено через 3...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru