хорошо, я буду держать его коротким.
У меня есть этот код:
<?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>
У меня также есть скрипт PHP, который открывает содержимое файла blog.txt. Теперь у меня есть множество проблем. Это мой первый PHP-скрипт, созданный когда-либо, я знаю, что это возможно и для MySQL, но я хочу начать с простых вещей. Текущий скрипт работает очень хорошо, но если обновить страницу, содержащую форму, она будет повторно опубликовать все. Я попытался сделать флажок и сделать это только после того, как галочка будет отмечена галочкой, но либо я сделал что-то неправильно, либо это невозможно, поскольку я просто не мог заставить его работать.
Наконец, по неизвестным причинам, когда я впервые вхожу на страницу, содержащую форму, она просто выполнит часть $ savestring, не получая никаких данных из 3 настраиваемых полей.
Итак, мои конечные потребности: есть ли способ добавить флажок, который не будет сохранен, и заставить скрипт работать только при галочке?
Не могли бы вы также рассказать мне, почему, когда я впервые вписываю скрипт, сценарий выполняется без получения каких-либо данных из?
PS: Я включил скрипт PHP в это, может быть, это причина?
if ($_POST['title'] != 'Title') && ($_POST['date'] != 'Date')
всегда будет true при первой загрузке страницы. Поскольку $_POST['title']
и $_POST['date']
не установлены, они не будут равны, чем меньше ожидаемых значений.
Вы должны добавить дополнительную проверку, чтобы убедиться, что страница запрашивается с помощью POST:
if (
'POST' === $_SERVER['REQUEST_METHOD'] &&
($_POST['title'] != 'Title')
&& ($_POST['date'] != 'Date')
)