IPB


Бесплатные VPN сервера

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

Задавая вопрос, обязательно укажите свой логин, домен и скрипт, которых он касается.

>> !!Ответы на 90% вопросов здесь!! <<


Правила хостинга | Общие ошибки новичков | Поиск

 
Тема закрытаНачать новую тему
Помогите дописать обработчик формы.
officemebelavi
сообщение 18.7.2011, 19:54
Сообщение #1


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


В общем 2 вопроса.

1. После заполнения формы: http://www.officemebelavi.ru/dillers.html мне на почту приходит следующее сообщение:
Название организации: ООО \"А\"
Адрес почтовый: ул. Пражская 10
Контактное лицо: *****
Телефон: *****
E-mail: avi-dm@yandex.ru
Основной вид деятельности: Торговля
Опыт работы в мебельном бизнесе: 1
Какую мебель продавал: Скайленд
Почему меняет поставщика: Сроки
Откуда узнал о нашей компании: Интернет
Предполагаемый среднемесячный оборот: 1
Желаемые условия работы: 2

Как сделать, чтобы мне не цифра приходила в ответе, а вариант ответа текстом(выбранный вариант)?
Сейчас в обработчике эти варианты выглядят вот так:

if (isset($_POST['element_10'])) {$element_10 = $_POST['element_10'];}
if (isset($_POST['element_11'])) {$element_11 = $_POST['element_11'];}
if (isset($_POST['element_12'])) {$element_12 = $_POST['element_12'];}

$message = "Название организации: $element_1 \nАдрес почтовый: $element_2 \nКонтактное лицо: $element_3 \nТелефон: $element_4 \nE-mail: $email \nОсновной вид деятельности: $element_5 \nОпыт работы в мебельном бизнесе: $element_10 \nКакую мебель продавал: $element_7 \nПочему меняет поставщика: $element_8 \nОткуда узнал о нашей компании: $element_9 \nПредполагаемый среднемесячный оборот: $element_11 \nЖелаемые условия работы: $element_12";

2. После отправки формы, чтобы пользователя автоматом переносило на главную страницу?
Надеюсь на вашу помощь...
Заранее спасибо.


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 18.7.2011, 20:04
Сообщение #2


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


По вервому вопросу: либо через if-else Обрабатывать, либо через switch-case

У второго всё ещё проще:

Сразу после отправки письма делаем header('Location: ');

P.s. обычно поставщику всё равно, кому мебель поставлять и для каких целей... Главное - чтобы оплатили... Так что анкета немного бредовая...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 18.7.2011, 20:08
Сообщение #3


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Спасибо за оперативность, но я уже вчера рассказывал, что только-только осваиваю php, поэтому если Вас не затруднит вставьте прям в строчку которую нужно, что нужно и красненьким выделите. Буду очень благодарен.
Так анкета для дилеров..., а не для конечного потребителя.


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 18.7.2011, 20:14
Сообщение #4


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


К примеру, $_POST['element_10'] содержит у нас "Был ли опыт работы в мебельном бизнесе?"
Код
if (isset($_POST['element_10'])) {
if ($_POST['element_10'] == 1) {
$element_10 = 'Нет, я только собираюсь этим заняться.';
}
elseif ($_POST['element_10'] == 2) {
$element_10 = 'Да, я раньше работал в активных продажах офисной мебели, есть клиентская база, ищу надежного поставщика для начала собственного бизнеса.';
}
elseif ($_POST['element_10'] == 3) {
$element_10 = 'Да, у меня есть предложение к Вам как поставщика.';
}
else {
$element_10 = 'какой-то нехороший человек не заполнил форму или заполнил её не верно';
}
}


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 18.7.2011, 20:33
Сообщение #5


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Службе поддержки Респект и Уважуха! Всё получилось, Спасибо Вам Горбушка! Вот только с header('Location: '); тоже хочется чуть более развернутый ответ smile.gif


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 18.7.2011, 21:31
Сообщение #6


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


А это и есть максимально развёрнутый ответ =)
Код
header('Location: http://m-v-l.org/');

Как только скрипт доходит до этой строки - пользователь переадресовывается на указанную страницу =) Но я бы выводил "Спасибо, Ваша анкета отправлена" или "Извините, но в анкете содержатся ошибка: 1, 2, 3"...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 18.7.2011, 21:45
Сообщение #7


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Это нужно прям в конце скрипта вставить?
Где-то здесь?
echo "<p>Ошибка отправки";
}
?>
Или наоборот вначале где уже есть header?
<?php header('Content-Type: text/html; charset=utf-8');


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 18.7.2011, 21:58
Сообщение #8


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


officemebelavi, в том месте, начиная с которого Вы отправляете человека на другую страницу...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 18.7.2011, 22:38
Сообщение #9


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Рано порадовался с вариантами ответа.
Не зависимо от выбора, приходит первый вариант.
На всякий случай вот сам скрипт:

<?php header('Content-Type: text/html; charset=utf-8');
if (isset($_POST['element_1'])) {$element_1 = $_POST['element_1'];}
if (isset($_POST['element_2'])) {$element_2 = $_POST['element_2'];}
if (isset($_POST['element_3'])) {$element_3 = $_POST['element_3'];}
if (isset($_POST['element_4'])) {$element_4 = $_POST['element_4'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['element_5'])) {$element_5 = $_POST['element_5'];}
if (isset($_POST['element_10'])) {$element_10 = $_POST['element_10'];}
if ($_POST['element_10'] = 1) {
$element_10 = 'Нет, я только собираюсь этим заняться.';
}
elseif ($_POST['element_10'] = 2) {
$element_10 = 'Да, я раньше работал в активных продажах офисной мебели, есть клиентская база, ищу надежного поставщика для начала собственного бизнеса.';
}
elseif ($_POST['element_10'] = 3) {
$element_10 = 'Да, у меня есть предложение к Вам как поставщика.';
}
if (isset($_POST['element_7'])) {$element_7 = $_POST['element_7'];}
if (isset($_POST['element_8'])) {$element_8 = $_POST['element_8'];}
if (isset($_POST['element_9'])) {$element_9 = $_POST['element_9'];}
if (isset($_POST['element_11'])) {$element_11 = $_POST['element_11'];}
if ($_POST['element_11'] = 1) {
$element_11 = 'до 10 000 €';
}
elseif ($_POST['element_11'] = 2) {
$element_11 = '10 000 - 15 000 €';
}
elseif ($_POST['element_11'] = 3) {
$element_11 = 'свыше 15 000 €';
}
if (isset($_POST['element_12'])) {$element_12 = $_POST['element_12'];}
if ($_POST['element_12'] = 1) {
$element_12 = 'Нет своего юр. лица, есть клиентская база, готов работать по агентскому договору. Не хочу заниматься доставкой и сборкой мебели.';
}
elseif ($_POST['element_12'] = 2) {
$element_12 = 'Хочу стать полноценным дилером, с последующим открытием выставочного зала.';
}
elseif ($_POST['element_12'] = 3) {
$element_12 = 'Есть юр. лицо, клиентская база, персонал, нужны самые низкие цены.';
}

$address = 'chair-avior@yandex.ru';
$sub = "Заявка дилера";
$message = "Название организации: $element_1 \nАдрес почтовый: $element_2 \nКонтактное лицо: $element_3 \nТелефон: $element_4 \nE-mail: $email \nОсновной вид деятельности: $element_5 \nОпыт работы в мебельном бизнесе: $element_10 \nКакую мебель продавал: $element_7 \nПочему меняет поставщика: $element_8 \nОткуда узнал о нашей компании: $element_9 \nПредполагаемый среднемесячный оборот: $element_11 \nЖелаемые условия работы: $element_12";
$verify = mail ($address,$sub,$message,"Content-type:text/plain; charset=UTF-8\r\nFrom:$email");
if ($verify == 'true')
{
header('Location: http://www.officemebelavi.ru/');
}
else
{
echo "<p>Ошибка отправки";
}
?>

А с переадресацией все хорошо. Перекидывает на главную.


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 18.7.2011, 23:03
Сообщение #10


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


Только вот маленькая загвоздка... Юзеру не вывелось "Ваше письмо отправлено"... И он модет Вам спамерить до беспредела...

Кроме того, Вы не проверяете, а заполнена ли форма вообще... А ещё можно написат что-нить типа JS и он выполнится, когда Вы откроете письмо =)


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 18.7.2011, 23:10
Сообщение #11


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Спасибо конечно, но это всё мне ещё предстоит познать. А сейчас первостепенный вопрос "Почему мне приходит в каждом варианте, на выбор который, первый пункт?".


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Гад
сообщение 18.7.2011, 23:23
Сообщение #12


Охранник
********

Группа: root
Сообщений: 3514
Регистрация: 22.2.2010
Из: Казань
Пользователь №: 1113
Домен: for-us.nl


замените = на ==
пример:
Код
if ($_POST['element_11'] == 1) {
elseif ($_POST['element_11'] == 2) {
elseif ($_POST['element_11'] == 3) {

Код
if ($_POST['element_12'] == 1) {
elseif ($_POST['element_12'] == 2) {
elseif ($_POST['element_12'] == 3) {

как то так
и тут еще
Код
if ($_POST['element_10'] == 1) {
elseif ($_POST['element_10'] == 2) {
elseif ($_POST['element_10'] == 3) {


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 19.7.2011, 1:17
Сообщение #13


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


Гад, да, спасибо... Привык, что NetBeans в if вставляет двойной = автоматом rolleyes.gif


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 19.7.2011, 7:36
Сообщение #14


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Спасибо, помогло.


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
officemebelavi
сообщение 19.7.2011, 8:11
Сообщение #15


Студент
****

Группа: Пользователи
Сообщений: 93
Регистрация: 16.7.2011
Из: Волгоград
Пользователь №: 3849
Домен: www.officemebelavi.ru


Теперь значит можно и к решению других проблем перейти.

Цитата(Горбушка @ 19.7.2011, 0:16) *
Только вот маленькая загвоздка... Юзеру не вывелось "Ваше письмо отправлено"... И он модет Вам спамерить до беспредела...

Так в каком месте должен стоять header('Location: http://www.officemebelavi.ru/'); чтобы пользователя после сообщений об удачной или неудачной отправке на главную перекидывало? Попытки тупо поставить его после сообщений ни к чему не приводили, сообщение выдавалось и оставалось висеть на экране. Или нужно ещё, что-нибудь дописывать?

Цитата(Горбушка @ 19.7.2011, 0:16) *
Кроме того, Вы не проверяете, а заполнена ли форма вообще... А ещё можно написат что-нить типа JS и он выполнится, когда Вы откроете письмо =)

Как эту задачу решить (с проверкой заполнения формы)?
Что должно будет произойти после открытия письма?


--------------------
Логин: msvlg
Домен: http://www.msvlg.ru
Перейти в начало страницы
 
+Цитировать сообщение
Гад
сообщение 19.7.2011, 13:48
Сообщение #16


Охранник
********

Группа: root
Сообщений: 3514
Регистрация: 22.2.2010
Из: Казань
Пользователь №: 1113
Домен: for-us.nl


Цитата(officemebelavi @ 19.7.2011, 9:24) *
Цитата(Горбушка @ 19.7.2011, 0:16) *
Только вот маленькая загвоздка... Юзеру не вывелось "Ваше письмо отправлено"... И он модет Вам спамерить до беспредела...

Так в каком месте должен стоять header('Location: http://www.officemebelavi.ru/'); чтобы пользователя после сообщений об удачной или неудачной отправке на главную перекидывало? Попытки тупо поставить его после сообщений ни к чему не приводили, сообщение выдавалось и оставалось висеть на экране. Или нужно ещё, что-нибудь дописывать?

Код
header('Location: url=http://www.officemebelavi.ru/');

замените на:
Код
header('Refresh: 3; url=http://www.officemebelavi.ru/');
echo "<b>Сообщение успешно отправлено!</b>";

а на счет проверки на заполненность, что-то типа:
Код
if ($_POST['element_1'] != "" and $_POST['element_2'] != "" and $_POST['element_3'] != "" and итд)
{
$address = 'chair-avior@yandex.ru';
$sub = "Заявка дилера";
$message = "Название организации: $element_1 \nАдрес почтовый: $element_2 \nКонтактное лицо: $element_3 \nТелефон: $element_4 \nE-mail: $email \nОсновной вид деятельности: $element_5 \nОпыт работы в мебельном бизнесе: $element_10 \nКакую мебель продавал: $element_7 \nПочему меняет поставщика: $element_8 \nОткуда узнал о нашей компании: $element_9 \nПредполагаемый среднемесячный оборот: $element_11 \nЖелаемые условия работы: $element_12";
$verify = mail ($address,$sub,$message,"Content-type:text/plain; charset=UTF-8\r\nFrom:$email");
if ($verify == 'true')
{
header('Refresh: 3; url=http://www.officemebelavi.ru/');
echo "<b>Сообщение успешно отправлено!</b>";
}
else
{
echo "<p>Ошибка отправки";
}
}
else
{
echo "заполни форму";
}

а на счет проверки на яваскрипт, возможно, имеет смысл пропускать все переменные через htmlspecialchars(); иль еще чего..)


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
KwKZver
сообщение 19.7.2011, 14:32
Сообщение #17


Студент
****

Группа: Пользователи
Сообщений: 59
Регистрация: 20.12.2010
Из: Город
Пользователь №: 2223
Домен: rceled.nx0.ru


Цитата(officemebelavi @ 19.7.2011, 15:24) *
Как эту задачу решить (с проверкой заполнения формы)?
Что должно будет произойти после открытия письма?

Можно с помощью HTML5.
Там все очень просто.
Пример: _http://devfiles.myopera.com/articles/4582/html5-forms-example.html
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 19.7.2011, 14:44
Сообщение #18


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


KwKZver, не забывай, что эта проверка работает только в современных браузерах и то не полностью и не во всех.
Даже в современно браузере мне не составит труда ее обойти.
Эта проверка заменяет только лишь проверку/визуальный вид который создается сейчас на JS


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 19.7.2011, 21:00
Сообщение #19


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


А кто мне мешает с твоей проверкой на HTML5 отправить сообщение напрямую странице без использования этой формы вовсе... Тогда в PHP доп проверка нужна, откуда такая форма вообще прискакала...

P.s. я б ещё капчу приспособил под это дело...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение

Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 12.11.2019, 23:47