пост формы стирает переменную в области файла - PullRequest
0 голосов
/ 10 июня 2011

Когда я отправляю форму в тот же файл .php, переменная области действия файла становится пустой, если не должно быть.

includefile.php:

 <?php

     $foo = " ";
 ?>

doIt.php:

<?php

    echo $foo;

echo <<<_END
  <form action="doIt.php" method="post"><pre>
    $nameLabel  : <input type="text" name=$nameLabel />
    <input type="submit" name="addrecord" value="ADD RECORD" />

_END;

index.php

<?php
   require_once 'includefile.php';

   $foo = "Set now.";  

   require_once 'doIt.php';
?>

Первыйво время загрузки index.php вызывает эхо $ foo и говорит: «Установить сейчас».Но когда я нажимаю кнопку отправки на форме - $ foo пусто.Почему повторный вход в doIt.php уничтожает значение $ foo?ПРИМЕЧАНИЕ: require_once ничего не изменил - все та же проблема.

Я предполагаю, что форма POST и полученный в результате повторный вход в тот же файл .php устанавливают новый кадр вызова в стеке со всем установленным значениемничего такого.

1 Ответ

1 голос
/ 11 июня 2011

Похоже, что ваша форма должна быть отправлена ​​в index.php, а не в doit.php. В файле 'doit.php' для $foo установлена ​​пустая строка из файла require_once, и она никогда не устанавливается через index.php, как вы могли ожидать. Итак:

<form action="index.php" method="post">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...