Когда пользователь пытается отредактировать свое сообщение в блоге и оставил некоторые поля пустыми, он должен получить ошибку пустых полей, но код, который должен это сделать, игнорируется, и вместо этого я получаю совершенно другое сообщение об ошибке.
Мой вопрос: как правильно отображать пустые поля сообщения об ошибке?
Фрагменты кода из файла editpost.php:
1.Проверка пустых полей:
// Check for empty fields
if (empty($title) || empty($body)) {
// Save correct data into fields
header('Location: editpost.php?error=emptyeditpostfield&title='.$title.'&body='.$body);
// Stop script
exit();
} else {
$query = "UPDATE posts SET title='$title', body='$body' WHERE id = {$update_id}";
}
2.Желаемое сообщение:
<!-- Check if user has rights to editing post -->
<?php if (isset($_SESSION['id'])) : ?>
<?php if ($_SESSION['name'] == $post['author']) : ?>
<div class="container">
<h1>Edit Post</h1>
<?php
// Message I want to show
if (isset($_GET['error'])) {
if ($_GET['error'] == 'emptyeditpostfield') {
echo '<p class="text-warning">Fill in all fields!</p>';
}
}
?>
<!-- Edit post form... -->
3.Полученное сообщение:
<!-- /Edit post form... -->
</div>
<?php else : header('Location: index.php?error=accessdenied'); exit(); // Message I got ?>
<?php endif; ?>
<?php else : header('Location: index.php?error=accessdenied'); exit(); ?>
<?php endif; ?>
Отредактировано (30 ноября).
4.Код, который также является частью этой проблемы:
// Get ID
$id = mysqli_real_escape_string($conn, $_GET['id']);
// Create Query
$query = "SELECT * FROM posts WHERE id = $id";
// Get Result
$result = mysqli_query($conn, $query);
// Fetch Data
$post = mysqli_fetch_assoc($result);
// var_dump($posts);
// Free Result
mysqli_free_result($result);
// Close Connection
mysqli_close($conn);
Рисунок 1. Предупреждения после отправки с пустыми полями.
![Warnings](https://i.stack.imgur.com/exOPv.png)
Рисунок 2. Редактирование поста.
![Edit Post Page](https://i.stack.imgur.com/PomNT.png)