|
|
|
(PHP) Переменная теряется при повторном проходе фомы
|
|||
|---|---|---|---|
|
#18+
Всем качественный привет! Есть такой файл index.php: --------------------------------------- <script language="JavaScript"> <!-- function openWin( tx ) { myWin= open(" form.php?ob=" + tx , "displayWindow", "width=600,height=482,scrollbars=yes,status=no,toolbar=no,menubar=no"); } --> </script> </HEAD> <BODY> <form action=""> <input type=button value="Click" onClick="openWin(' Это значение ')"> </form> </BODY> --------------------------------------- Есть второй файл form.php: --------------------------------------- <? if ($_SERVER['REQUEST_METHOD']=='POST') { foreach($_POST as $key => $value) { $value=trim($value); if (get_magic_quotes_gpc()) $value = stripslashes($value); $value=htmlspecialchars($value,ENT_QUOTES); $_POST[$key]=$value; $value=str_replace("\r","",$value); $value=str_replace("\n","<br>",$value); $msg[$key]=$value; } $err=''; if (!$man) { $err="Вы не указали количество!<br>"; $man_ = 'id="h6"'; } //если ошибок нет, то пишем в файл if (!$err) { $s .="Количество ......... " .$msg['man']."\n"; $s .="--------------------------------------------\n"; $fp=fopen("gbook.txt","a"); fwrite($fp,$s); fclose($fp); //после записи перенаправляем браузер на страницу, которая отображает сообщения Header("Location: ".$_SERVER['PHP_SELF']); //и завершаем работу скрипта exit; } //если у нас были ошибки при заполнении формы, то в файл ничего не запишется, скрипт не завершится, а выведется форма, с заполненными полями и сообщения об ошибках } else { //если это не пост, то присваиваем переменным, выводимым в форме пустую строку $_POST['name'] = $_POST['email'] = $_POST['notes'] =''; } ?> <HTML> <BODY> <? if ($err) echo '<font color=red><b>'.$err.'</b></font>'; ?> <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="POST"><br> <DIV id='h5'>Форма</DIV><BR> <DIV id='h3'><? print $ob ?></DIV><BR> <TABLE width='100%' border='1' cellspacing='0' cellpadding='3' bordercolor='#97C1DD'> <TH width='35%'>Сколько <INPUT type='text' name='man' size='2' <? print $man_ ?> value="<? echo $_POST['man'] ?>"> </TH> </TR> </TABLE> <br> <input type="submit" name="Отправить" style="text-align: center;"> </FORM> </BODY> </HTML> ---------------------------------------------- А вопрос следующий: При вызове form.php значение "Это значение" , посредством транзитной переменной tx , передается переменной $ob и при выводе формы на экран $ob имеет значение "Это значение" . Но ... в случае, если мы не заполнили поле формы, после обработки, мы выводим форму по новой с указанием ошибки. Но при этом переменная $ob исчезает. Подскажите как ее сохранить при последующих выводах формы? Заранее благодарен. С Уважением. Игорь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 21:50 |
|
||
|
(PHP) Переменная теряется при повторном проходе фомы
|
|||
|---|---|---|---|
|
#18+
1) Судя по тому, как Ты работаешь с $ob включен режим register globals. В оригинале $ob Ты передаешь посредством Get параметра. Так почему же не поступить точно также со вторым случаем, т. е. <form action="<? echo $_SERVER['PHP_SELF'] ?ob=$ob ?>" method="POST"><br> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 23:58 |
|
||
|
(PHP) Переменная теряется при повторном проходе фомы
|
|||
|---|---|---|---|
|
#18+
Спасибки огромные за помощь! :) Однако победил другим способом: <form action="" method="POST"><br> т.е. исключив <? echo $_SERVER['PHP_SELF']?ob=$ob ?> насмерть ------------ Processor not found! Software emulation ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2005, 10:42 |
|
||
|
|

start [/forum/topic.php?fid=23&tid=1478129]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 354ms |

| 0 / 0 |
