kodex77
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. Есть comments.php, при прямом обращении к файлу, все работает, а при подключении через include на страницах, форма для добавления комментариев перестает работать. Предполагаю, что проблема где-то здесь: Код: <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> | Можете подсказать, в чем именно проблема? Заранее спасибо. Код: <?php error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', __DIR__ . '/error.log'); $servername = "localhost"; // Имя сервера $username = "dbusername"; // Имя пользователя базы данных $password = "dbpassword"; // Пароль пользователя базы данных $dbname = "dbname"; // Имя базы данных $conn = new mysqli($servername, $username, $password_db, $dbname); if ($conn->connect_error) { die("Ошибка подключения: " . $conn->connect_error); } $comment_added = false; if ($_SERVER["REQUEST_METHOD"] == "POST") { echo "Отладочное сообщение: Форма отправлена.<br>"; $author = mysqli_real_escape_string($conn, $_POST['author']); echo "Отладочное сообщение: Автор получен из формы: " . $author . "<br>"; $comment = mysqli_real_escape_string($conn, $_POST['comment']); echo "Отладочное сообщение: Комментарий получен из формы: " . $comment . "<br>"; $gameName = mysqli_real_escape_string($conn, $_POST['gameName']); echo "Отладочное сообщение: Название игры получено из формы: " . $gameName . "<br>"; if (!empty($author) && !empty($comment) && !empty($gameName)) { echo "Отладочное сообщение: Условие для выполнения запроса на добавление комментария выполнено.<br>"; $sql = "INSERT INTO site_comments (game_name, author, comment, date) VALUES ('$gameName', '$author', '$comment', NOW())"; echo "Отладочное сообщение: SQL-запрос для добавления комментария: " . $sql . "<br>"; if ($conn->query($sql) === TRUE) { $comment_added = true; echo "Отладочное сообщение: Комментарий успешно добавлен в базу данных.<br>"; } else { echo "Ошибка: " . $sql . "<br>" . $conn->error; } } else { echo "<p>Пожалуйста, заполните все обязательные поля.</p>"; } } if (!isset($gameName)) { $gameName = 'Demo Game'; } $sql = "SELECT * FROM site_comments WHERE game_name = '$gameName' ORDER BY date DESC"; $result = $conn->query($sql); ?> <!DOCTYPE html> <html> <head> <title><?php echo $gameName; ?> - Комментарии к игре</title> <style> /* Стили для комментариев */ #comments { margin-top: -10px; margin-bottom: 0px; padding: 10px; background-color: #f8f9fa; border-radius: 10px; } .comment { border-bottom: 1px solid #ced4da; padding: 10px 0; margin-bottom: 10px; } .comment p { margin: 5px 0; } .comment .author { font-weight: bold; color: #007bff; } .comment .date { color: #6c757d; font-size: 12px; font-weight: bold; } /* Стили для формы комментариев */ #comment-form { margin: 0 auto; margin-top: 0px; margin-bottom: 0px; padding: 20px; background-color: #f8f9fa; border-radius: 10px; text-align: left; display: flex; flex-wrap: wrap; } #comment-form label { margin-right: 5px; font-weight: bold; display: inline-block; width: 80px; } .required-star { color: red; } #comment-form textarea, #comment-form input[type="text"], #comment-form input[type="submit"] { flex-grow: 1; margin-right: 5px; } #comment-form textarea { width: calc(100% - 90px); /* Отнимаем ширину метки для textarea */ height: 100px; margin-top: 5px; margin-bottom: 10px; border-radius: 5px; border: 1px solid #ced4da; padding: 10px; } #comment-form input[type="text"], #comment-form input[type="submit"] { width: calc(100% - 90px); /* Отнимаем ширину метки для input */ border-radius: 5px; border: 1px solid #ced4da; padding: 10px; margin-top: 5px; margin-bottom: 5px; background-color: #fff; color: #495057; } #comment-form input[type="submit"] { background-color: #007bff; color: #fff; cursor: pointer; transition: background-color 0.3s; } #comment-form input[type="submit"]:hover { background-color: #0056b3; } </style> </head> <body> <!-- Блок с комментариями --> <div class="blueline">КОММЕНТАРИИ К ИГРЕ - <?php echo $gameName; ?></div> <div id="comments"> <?php if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo '<div class="comment">'; echo '<p class="author">' . $row["author"] . '</p>'; echo '<p class="date">' . $row["date"] . '</p>'; echo '<p>' . $row["comment"] . '</p>'; echo '</div>'; } } else { echo "<p>Пока здесь нет комментариев.</p>"; } ?> </div> <!-- Конец блока с комментариями --> <!-- Сообщение об успешной отправке комментария --> <?php if ($comment_added) : ?> <div id="success-message">Ваш комментарий уже добавлен и будет опубликован после модерации.</div> <script> // Скрываем сообщение об успешной отправке через 10 секунд setTimeout(function() { var successMessage = document.getElementById('success-message'); if (successMessage) { successMessage.style.display = 'none'; } }, 10000); </script> <?php endif; ?> <!-- Форма для оставления комментария --> <div id="comment-form" style="display: <?php echo ($comment_added ? 'none' : 'block'); ?>;"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <label for="author" class="required-label">Имя:<span class="required-star">*</span></label><br> <input type="text" id="author" name="author"><br> <label for="comment" class="required-label">Комментарий:<span class="required-star">*</span></label><br> <textarea id="comment" name="comment"></textarea><br> <!-- Передаем название игры через скрытое поле --> <input type="hidden" name="gameName" value="<?php echo $gameName; ?>"> <input type="submit" value="Оставить комментарий"> </form> </div> <!-- Конец формы для оставления комментария --> </body> </html> <?php // Закрываем соединение с базой данных $conn->close(); ?> |
|