当我将表单发布到同一个.php文件时,如果不应该将文件范围变量设为null。
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文件 在堆栈上设置一个新的调用框架,所有内容都设置为空。
答案 0 :(得分:1)
看起来您的表单需要提交到'index.php'而不是'doit.php'。在'doit.php'文件中,$foo
被设置为require_once
文件中的空字符串,并且永远不会像您预期的那样通过'index.php'设置。所以:
<form action="index.php" method="post">