【发布时间】:2017-05-11 02:20:31
【问题描述】:
对于网站,用户应该能够键入标题并在表单中发布,然后按提交按钮输入它们。按下提交按钮后,表单中的数据将写入其分配的文本文件,这些文本文件与网页位于同一文件夹中。写作工作正常,但正如您在下面看到的,我试图这样做,以便如果用户单击提交按钮而没有填写站点中的两个字段之一(或两个字段都不填写)将提示他们输入文本,不进行文件写入。
我的问题是,当他们单击提交并且未填写字段时,这实际上会影响 .txt 文件,并且它们最终也会变为空白。我希望文件保留它们的“旧”文本,除非表单中的两个文本区域都包含要覆盖的数据。例如,如果两个 .txt 文件中都有文本,并且我在表单上单击提交而表单中没有文本,则这两个 .txt 文件将保留它们的文本,而不是被覆盖而没有文本(这是当前发生的情况) .
这是html和php:
<form action="AdminBlog.php" method="post">
Blog Title:<textarea type="text" name="titleInput"></textarea><br><br>
Blog Post:<textarea type="text" name="postInput"></textarea><br><br><br>
<input type="submit" value="Submit"/>
</form>
<?php
$titleFile = fopen("Title.txt","w");
$blogTitle = null;
$postFile = fopen("Post.txt","w");
$blogPost = null;
if(!empty($_POST['titleInput']) && !empty($_POST['postInput'])) {
$blogTitle = $_POST['titleInput'];
fwrite($titleFile,$blogTitle);
fclose($titleFile);
$blogPost = $_POST['postInput'];
fwrite($postFile,$blogPost);
fclose($postFile);
}
if (empty($_POST['postInput']) || empty($_POST['titleInput'])) {
echo "Please enter a title and post.";
}
?>
将最后的 if 语句更改为 elseif 或 else 似乎并没有什么不同。回显在应该输出的时候被输出,但 .txt 文件仍然被覆盖而没有数据(当 textarea 为空白并且用户单击提交时)。
编辑:只是想添加一些东西。我不确定这是否相关,但文件中是否有文本,我无法从另一个 .php 文件中读取文本。我可以从同一个,但是当试图在另一个 .php 页面中获取 .txt 文件内容时,我不能这样做。这也给我带来了一个单独的问题,只是想提一下以防万一。
【问题讨论】: