Как избавиться от дублирования записи в базу данных при каждом обновлении страницы?
Приветствую!
Суть вопроса вот в чем.
Проходу в данный момент курс по Codeigniter. Поставленная задача, создать функционал отправки коментариев со страницы просмотра фильма в базу данных. Сам функционал я создал, в базу коментарии отправляются. Но при каждом обновлении страницы после отправки комента, это самый комент дублируется в базе данных. Для решения этой проблеммы создал костыль (после отправки комента идет редирект на страницу "comment_success". Отрывок кода из контроллера Movies прилагается.
Так вот, как можно сделать так, чтобы при успешной отправке коментария я остался на этой же странице и при этом небыло дублирования записей в БД при обновлении этой страницы?
Заранее спасибо за ответ
if($this->input->post('text')) {
$user_id = $this->dx_auth->get_user_id();
$movie_id = $movie_slug['id'];
$comment_text = $this->input->post('text');
if($this->comments_model->setComments($user_id, $movie_id, $comment_text)) {
$this->load->view('templates/header', $this->data);
$this->load->view('movies/comment_success', $this->data);
$this->load->view('templates/footer');
}
}
$this->load->view('templates/header', $this->data);
$this->load->view('movies/view', $this->data);
$this->load->view('templates/footer');
2 ответов
Спасибо, добрый человек. все заработало просто отлично!
Вот мое решение:
if($this->input->post('text')) {
$user_id = $this->dx_auth->get_user_id();
$movie_id = $movie_slug['id'];
$comment_text = $this->input->post('text');
if($this->comments_model->setComments($user_id, $movie_id, $comment_text)) {
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
}
$this->load->view('templates/header', $this->data);
$this->load->view('movies/view', $this->data);
$this->load->view('templates/footer');
Посмотри решение в этом вопросе, мне помогло:
https://fructcode.com/ru/qa/pochemu-pri-kajdom-obnovlenii-tablisi/