0

好的,我会保持简短。

我有这个代码:

<?php
if ($_POST['title'] != 'Title') && ($_POST['date'] != 'Date')
{
$fileName = 'blog.txt';
$fp = fopen('blog.txt', 'a');
$savestring = PHP_EOL . "<h2><center><span>" . $_POST['title'] . "</span></center></h2>" . PHP_EOL . "<div class=fright><p><em>|<br><strong>| Posted:</strong><br>| " . $_POST['date'] . "<br>|</p></em></div></p></em>" . PHP_EOL . "<p><em>" . $_POST['paragraph'] . "</em></p>" . PHP_EOL . "<hr>";
fwrite($fp, $savestring);              
fclose($fp);
}
?>

而这个 HTML 表单:

<form action="acp.html" method="post">
<input value="Title" name="title" class="txt" id="title">
<input value="Date" name="date" class="txt" id="date">
<input value="Content" name="paragraph" class="txt" id="paragraph">
<button class="btn">Add Post!</button>
</form> 

我还有一个打开 blog.txt 文件内容的 PHP 脚本。现在,我有一系列问题。这是我制作的第一个 PHP 脚本,我知道 MySQL 也可以,但我想从简单的东西开始。当前脚本运行良好,但如果我刷新包含表单的页面,它将重新发布所有内容。我试图制作一个复选框并仅在选中复选框时才发布,但要么我做错了要么这是不可能的,因为我根本无法让它工作。

最后,由于一些未知的原因,当我第一次进入包含表单的页面时,它只会执行 $savestring 部分,而根本不会从 3 个自定义字段中获取任何数据。

所以我的最终需求是:有没有办法添加一个不会保存的复选框,并使脚本仅在选中复选框时才起作用?

您能否也告诉我为什么当我第一次输入脚本时,脚本在没有从 's 获取任何数据的情况下执行?

PS:我已将 PHP 脚本包含在 中,这可能是原因吗?

4

1 回答 1

0

if ($_POST['title'] != 'Title') && ($_POST['date'] != 'Date') 当您第一次加载页面时将始终如此。由于$_POST['title']并且$_POST['date']未设置,它们不会等于任何必须小于您的预期值的值。

您应该添加额外的检查以确保使用 POST 请求页面:

if (
    'POST' === $_SERVER['REQUEST_METHOD'] && 
    ($_POST['title'] != 'Title') 
     && ($_POST['date'] != 'Date')
)
于 2013-11-12T20:56:10.253 回答