Я работаю над простым приложением форума, где пользователи могут отправлять сообщения через форму. Когда я нажимаю кнопку «Опубликовать», сообщение должно быть сохранено в базе данных MySQL, но, похоже, оно не работает. Я получаю сообщение об ошибке:
"При публикации вашего сообщения произошла ошибка".
Я пытался устранить проблему, но до сих пор не могу понять, что происходит не так. Может ли кто-нибудь помочь мне определить проблему и предложить ее решение?
Что я пробовал:
- Проверил интерфейсный JavaScript : Я проверил, что данные формы отправляются в файл save_post.php правильно, но похоже, что данные не вставляются в базу данных.
- Проверил внутренний PHP: Файл save_post.php, кажется, получает запрос, но я не уверен, что SQL-запрос выполнен правильно или нет.
- Проверил базу данных: таблица сообщений существует, и я убедился, что структура таблицы соответствует данным, которые я пытаюсь вставить.
HTML и JavaScript (интерфейс)
Код: Выделить всё
Persistent Komarovi Forum
/* Add your CSS here for styling */
Komarovi Forum
Share your thoughts anonymously, upvote posts, and join the discussion!
Create a Post
Post
Footer content with Instagram logo
const postInput = document.getElementById("postInput");
const submitPost = document.getElementById("submitPost");
const postsContainer = document.getElementById("posts");
submitPost.addEventListener("click", () => {
const content = postInput.value.trim();
if (content) {
fetch("save_post.php", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams({ content: content })
})
.then(response => response.json())
.then(data => {
if (data.success) {
loadPosts(); // Reload posts after posting
postInput.value = ""; // Clear input field
} else {
alert("There was an error in publishing your post. Please try again.");
}
})
.catch(() => {
alert("There was an issue submitting your post. Please try again.");
});
}
});
function loadPosts() {
fetch("get_posts.php")
.then(response => response.json())
.then(posts => {
postsContainer.innerHTML = ''; // Clear previous posts
posts.forEach(post => {
const postElement = document.createElement("div");
postElement.innerHTML = `
${post.content}
`;
postsContainer.appendChild(postElement);
});
})
.catch(error => console.error("Error loading posts:", error));
}
window.addEventListener("DOMContentLoaded", loadPosts);
Код: Выделить всё
Database - posts Table Creation (MySQL)
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
При попытке опубликовать сообщение об ошибке:
"Произошло ошибка при публикации вашего сообщения.
Ожидаемый результат:
- Когда пользователь нажимает «Опубликовать», содержимое должен быть вставлен в базу данных MySQL.
- После этого сообщение должно появиться в разделе сообщений. на веб-странице.
- Проверил JavaScript : Запрос отправляется в файл save_post.php, но запись не сохраняется.
- Проверил базу данных: таблица записей базы данных существует, ее структура правильная.
Проверил PHP: отчеты об ошибках включены в PHP, чтобы помочь отладить любые проблемы.
- Почему данные не t вставляется в базу данных?
- Правильен ли SQL-запрос?
- Проблема связана с серверной частью PHP или внешним интерфейсом?
Убедитесь, что учетные данные базы данных в файле save_post.php верны и соответствуют тем, которые вы используете для подключения к базе данных MySQL.
Заранее благодарим за помощь!
Подробнее здесь: https://stackoverflow.com/questions/792 ... ript-issue
Мобильная версия