當我將表單發佈到同一個.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文件 會在堆棧上設置一個新的調用幀,其中所有內容都設置爲空。
的形式從技術上不回發到同一個文件 - 而不是發佈到「的index.php」您要發佈帖子「doit.php」,這是從一個'require_once'索引文件。我認爲那裏沒有重大問題,但需要考慮。 – William 2011-06-10 19:53:03
您更改了您發佈的所有代碼。 – dqhendricks 2011-06-10 20:11:02
沒有「文件範圍」之類的東西。包含語句與複製include語句所在的包含文件中的所有代碼相同。 – dqhendricks 2011-06-10 20:12:18