Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Пропадают переменные из форм (http://forum.oszone.net/showthread.php?t=112088)

Bask76 23-07-2008 14:29 859173

Пропадают переменные из форм
 
Пытаюсь облагородить немного наш сайт и немного озадачился вот над чем
Задча такая в файле form.html форма заполняется, проверяется на наличей в ней телефона мыло и тд, потом показывается для проверки и потом по клику отсылается на почту(отсылка осуществляется другим файлом с кодом отправки)
Взял исходник для отправки и проверки заполненных полей вот отсюда http://www.progs.biz/php/php/lessons/021.aspx
Немного доработал для своих целей, а именно
в function confirm_form хотел вставить кнопку для отправки проверенной информации на нашу почту, вставил и все нормально работает письма проиходят только в письме пропали все переменные
Выкладываю что получилось надеюсь на помощь
У нас уже работает форма заявки тоько без проверки полей, из массива извлекаются командой $_POST/ Из нее все приходит нормально все переменные, а здесь никак
Была идея вставить код отправки сразуже в эту функцию, но тогда теряется смысл проверки она отсылается сразу, а нужно что бы форму сначала заполнили, потом проверили и только потом отправили к нам.
Пытался в коде отправки вставить команду echo "$HTTP_POST_VARS['finans']"; чтобы вытащить из массива но не вышло выдает вот что // Array( ) //

<?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");
?>

<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>

Sham 24-07-2008 17:42 860193

а что с register_globals (php.ini)? если off, то такие переменные не определяются... только через $_POST\GET...
в .htaccess
Код:

php_flag register_globals on

Arrest 25-07-2008 12:27 860778

PHP код:

expand($_GET);
expand($_POST);
expand($_COOKIE); 


Sham 26-07-2008 02:03 861290

точнее
PHP код:

extract($_GETEXTR_REFS);
extract($_POSTEXTR_REFS); 

expand не знаю...

Bask76 26-07-2008 14:24 861484

Не работает ни первый вариант ни второй, на expande ругается
Такое впечатление что при отправке второй формы данные из первой просто обнуляются (хотя я в PHP только начинаю)
Пока нашел такой выход вставил опять все поля формы в confirm_form, только сделал что бы были заполненные с полем вроде этого value="<?php print $email ?>">*
Только не совсем так как хотел(((
Подскажите как сделать простое отображение полей формы без возможности редактирования юзером??

Bask76 26-07-2008 22:02 861731

Команда Disabled Все работает всем спасибо!


Время: 08:28.

Время: 08:28.
© OSzone.net 2001-