我有以下脚本从用户获取数据并使用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);
}
?>
答案 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框架来帮助你。处理了很多这些问题。