Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не передаются переменные
 
 автор: Bask76   (23.07.2008 в 11:25)   письмо автору
 
 

Здравствуйте
Нужен совет по настройке сайта
Понадобилось сделать форму с проверкой заполнения полей и отсылкой на почту. За исходник взял вот это 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>

Вроде все работает, сначала проверяет потом отсылает, но на почту падают пустые поля
Подозреваю что данные где то в массиве а вот где и как их достать???
Помогите

   
 
 автор: GeorgeIV   (23.07.2008 в 11:46)   письмо автору
 
   для: Bask76   (23.07.2008 в 11:25)
 

<form action="processfeedback.html" method=post>
<input type="submit" value="Отправить">
</form> 

Здесь же ничего не передается

   
 
 автор: Bask76   (23.07.2008 в 11:57)   письмо автору
 
   для: GeorgeIV   (23.07.2008 в 11:46)
 

Хорошо как мне вытянуть данные из первой формы и вставить в эту??

   
 
 автор: GeorgeIV   (23.07.2008 в 12:21)   письмо автору
 
   для: Bask76   (23.07.2008 в 11:57)
 

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

   
 
 автор: Bask76   (23.07.2008 в 12:51)   письмо автору
 
   для: GeorgeIV   (23.07.2008 в 12:21)
 

Я так и хотел сделать сначало но потом возникли трудности
В исходнике функция confirm_form только выводит переменные, а мне надо их и отправить (если они правильные) на почту, т.е опять же нужна форма и в <form action="" указывать опять же второй файл, где код отправки на почту

Т.е как то в функции confirm_form вставить кнопку отправки.. Как это сделать я не знаю, поэтому я думал переправить на второй файл, где все уже готово и все уже работало кроме потери переменных
Если подскажете как из confirm_form отправить данные по клику то будет здорово

   
 
 автор: GeorgeIV   (23.07.2008 в 16:41)   письмо автору
 
   для: Bask76   (23.07.2008 в 12:51)
 

так тебе уже пришли в функцию проверенные отправляемые данные. Не выводи их, если не надо, а подставь эти данные в функцию mail тут же в confitm_form, в чем загвоздка?

   
 
 автор: Bask76   (24.07.2008 в 07:50)   письмо автору
 
   для: GeorgeIV   (23.07.2008 в 16:41)
 

А вот в чем .. Хотелось бы чтобы перед отправкой человек проверил введенные данные, т.е просмотрелд бы что он назаполнял и если нужно вернулся назад или по нажатию тут же отправляет. Сама форма очень обьемная (около 50 по лей) можно ошибиться спокойно.
Уже были случаи когда присылали по нескольку заявок с переправленными данными
Есть один нюанс У нас на сайте уже работает форма заявок и снее все приходит нормально единственное отсличие этого кода во второй кнопке submit.
Из массива извлекаются командой $_POST
Пробовал извлечь командой echo $HTTP_POST_VARS не выходит пишет Array ( )

   
 
 автор: GeorgeIV   (24.07.2008 в 09:59)   письмо автору
 
   для: Bask76   (24.07.2008 в 07:50)
 

тогда во вторую форму напихай поля hidden с полученными данными и после проверки юзером либо их сабмит либо назад

$HTTP_POST_VARS это то же что и $_POST, если выводишь эхом, то получишь Array(), надо выводить print_r($_POST)

   
 
 автор: Bask76   (24.07.2008 в 14:54)   письмо автору
 
   для: GeorgeIV   (24.07.2008 в 09:59)
 

Спасибо попробую

   
 
 автор: Bask76   (24.07.2008 в 16:16)   письмо автору
 
   для: GeorgeIV   (24.07.2008 в 09:59)
 

Все оказалось проще вставил еще раз поля из первой формы с value="<?php print $l_name ?>"> и все получилось Только вот еще вопросик возник Можно ли там сделать текст нередактируемые что бы человек только видел но не мог ничего в этой форме подправить, а только на первой?

   
 
 автор: GeorgeIV   (24.07.2008 в 16:22)   письмо автору
 
   для: Bask76   (24.07.2008 в 16:16)
 

DISABLED

   
 
 автор: Bask76   (26.07.2008 в 20:48)   письмо автору
 
   для: GeorgeIV   (24.07.2008 в 16:22)
 

Спасибо GeorgeIV все работает Странно про эту команду нигде не говориться Ща запустил все работает Осталось немного приукрасить и можно переходить к следующему вопросу защита от спама( Но это уже отдельная тема)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования