|
|
|
| Здравствуйте
Нужен совет по настройке сайта
Понадобилось сделать форму с проверкой заполнения полей и отсылкой на почту. За исходник взял вот это http://www.progs.biz/php/php/lessons/021.aspx
После доработки получилось это
<?php
function show_form($finans, $l_name, $telefon, $email) {
?>
<form action="form.html" method="post">
<table width="95%" border="0" cellpadding="3">
..........
<tr><td><span class="style69"> E-mail <br>
<input type="text" name="email" size="100" value="<?php print $email ?>">*<br></td></tr>
</table>
</form>
<?
}
function check_form($finans, $l_name, $telefon, $email) {
if(!$l_name || !$telefon || !$email):
print("Вы не заполнили нужные поля!<br>");
if(!$l_name) {
print("Введите Ваше имя.<br>");
}
if(!$telefon) {
print("Введите Ваш телефон.<br>");
}
if(!$email) {
print("Введите ваш e-mail.<br>");
}
show_form($finans, $l_name, $telefon, $email);
else:
confirm_form($finans, $l_name, $telefon, $email);
endif;
}
function confirm_form($finans, $l_name, $telefon, $email)
{
?>
<h2>Проверьте введенную Вами информацию:</h2>
<?
print("<br>$l_name<br>$email\n");
echo $finans;
?>
<br>
<br>
<form action="processfeedback.html" method=post>
<input type="submit" value="Отправить">
</form>
<?
}
if(!$submit):
?>
<p>Введите информацию о себе</p>
<p>Все поля обязательны для заполнения.<p>
<?php
show_form("", "", "","");
else:
check_form($finans, $l_name, $telefon, $email);
endif;
?></body></html>
Вроде все работает, сначала проверяет потом отсылает, но на почту падают пустые поля
Подозреваю что данные где то в массиве а вот где и как их достать???
Помогите | |
|
|
|
|
|
|
|
для: Bask76
(23.07.2008 в 11:25)
| |
<form action="processfeedback.html" method=post>
<input type="submit" value="Отправить">
</form>
|
Здесь же ничего не передается | |
|
|
|
|
|
|
|
для: GeorgeIV
(23.07.2008 в 11:46)
| | Хорошо как мне вытянуть данные из первой формы и вставить в эту?? | |
|
|
|
|
|
|
|
для: Bask76
(23.07.2008 в 11:57)
| | Вы перемешали весь процесс, для чего то добавив еще одну форму. В исходном тексте ее нет и там все работает верно, не так ли? Для чего вам потрбовалась вторая форма, если инфа уходит из первой.
В функцию confirm_form и надо вставлять код отправки почты. | |
|
|
|
|
|
|
|
для: GeorgeIV
(23.07.2008 в 12:21)
| | Я так и хотел сделать сначало но потом возникли трудности
В исходнике функция confirm_form только выводит переменные, а мне надо их и отправить (если они правильные) на почту, т.е опять же нужна форма и в <form action="" указывать опять же второй файл, где код отправки на почту
Т.е как то в функции confirm_form вставить кнопку отправки.. Как это сделать я не знаю, поэтому я думал переправить на второй файл, где все уже готово и все уже работало кроме потери переменных
Если подскажете как из confirm_form отправить данные по клику то будет здорово | |
|
|
|
|
|
|
|
для: Bask76
(23.07.2008 в 12:51)
| | так тебе уже пришли в функцию проверенные отправляемые данные. Не выводи их, если не надо, а подставь эти данные в функцию mail тут же в confitm_form, в чем загвоздка? | |
|
|
|
|
|
|
|
для: GeorgeIV
(23.07.2008 в 16:41)
| | А вот в чем .. Хотелось бы чтобы перед отправкой человек проверил введенные данные, т.е просмотрелд бы что он назаполнял и если нужно вернулся назад или по нажатию тут же отправляет. Сама форма очень обьемная (около 50 по лей) можно ошибиться спокойно.
Уже были случаи когда присылали по нескольку заявок с переправленными данными
Есть один нюанс У нас на сайте уже работает форма заявок и снее все приходит нормально единственное отсличие этого кода во второй кнопке submit.
Из массива извлекаются командой $_POST
Пробовал извлечь командой echo $HTTP_POST_VARS не выходит пишет Array ( ) | |
|
|
|
|
|
|
|
для: Bask76
(24.07.2008 в 07:50)
| | тогда во вторую форму напихай поля hidden с полученными данными и после проверки юзером либо их сабмит либо назад
$HTTP_POST_VARS это то же что и $_POST, если выводишь эхом, то получишь Array(), надо выводить print_r($_POST) | |
|
|
|
|
|
|
|
для: GeorgeIV
(24.07.2008 в 09:59)
| | Спасибо попробую | |
|
|
|
|
|
|
|
для: GeorgeIV
(24.07.2008 в 09:59)
| | Все оказалось проще вставил еще раз поля из первой формы с value="<?php print $l_name ?>"> и все получилось Только вот еще вопросик возник Можно ли там сделать текст нередактируемые что бы человек только видел но не мог ничего в этой форме подправить, а только на первой? | |
|
|
|
|
|
|
|
для: Bask76
(24.07.2008 в 16:16)
| | DISABLED | |
|
|
|
|
|
|
|
для: GeorgeIV
(24.07.2008 в 16:22)
| | Спасибо GeorgeIV все работает Странно про эту команду нигде не говориться Ща запустил все работает Осталось немного приукрасить и можно переходить к следующему вопросу защита от спама( Но это уже отдельная тема) | |
|
|
|