PHP页面在没有执行其余脚本的情况下被重定向

时间:2012-02-01 20:23:59

标签: php

我有以下脚本从用户获取数据并使用PHP写入文件。 我面临的问题是当我使用“表单操作”引导页面时页面被重定向但是脚本的其余部分没有被执行,这意味着没有新的数据写入文件,但是当我将表单操作留空时数据得到了。 以下是代码:

 <html>
 <body>
    <form action="page.php" method="post">
        <input type="text" name="text_box"/>
        <input type="submit" id="search-submit" value="submit" />
    </form>
</body>
</html>
<?php
if(isset($_POST['text_box'])) { //only do file operations when appropriate
    $a = $_POST['text_box'];
    $myFile = "t.txt";
    $fh = fopen($myFile, 'w') or die("can't open file");
    fwrite($fh, $a);
    fclose($fh);
}
?> 

3 个答案:

答案 0 :(得分:1)

PHP不会自动保存。您需要提交表单然后执行给定的数据。

另外,你的fopen正在使用'w'来截断文件,然后写入它。因此,每次保存时,新数据都不会附加到最后,它会替换当前数据。

此外,这个文件名为'page.php'吗?我能用你的代码考虑的唯一其他解决方案是在<html>之前将PHP代码移到文件的顶部。

答案 1 :(得分:1)

您将表单提交至page.php,但您的表单处理逻辑位于index.php。这就是造成你问题的原因。

提交至index.php而不是page.php,或者只是将表单处理逻辑移至page.php

答案 2 :(得分:0)

当有人提交表单时,会将它们带到'page.php'。无论该文件中的PHP是什么,都将被执行。上面文件中的任何PHP(即不在page.php中)都不会被执行 - 它永远不会被读取。

暂且不说:我会查看一个像Yii或CodeIgniter这样的PHP框架来帮助你。处理了很多这些问题。