2015-04-03 2 views
0

Я создал систему комментариев для своего сайта. Проблема в том, что старые комментарии дублируют себя в любое время, когда веб-страница обновляется или перезагружается. Как я могу остановить это и показывать только оригинальные комментарии? я добавил весь код здесь ниже:php/mysql комментирует дублирование автоматически на страницах перезагрузки

<pre> 
require 'data/connect.php'; 


if(isset($_POST['name'])&& isset($_POST['comment'])){ 
    $name = trim($_POST['name']); 
    $comment = trim($_POST['comment']); 

    if(!empty($name) && !empty($comment)){ 
     $insert = $connect->query("INSERT INTO 
     comments(name,comment)VALUES('$name','$comment')"); 
     if($insert){ 
      echo "Success"; 
     }else{ 
      echo "Sorry"; 
     } 
    } 
} 
?> 
</pre> 

форме здесь

<pre> 
<?php 
    if(isset($_POST['name'])&& isset($_POST['comment'])){ 
     $name = trim($_POST['name']); 
     $comment = trim($_POST['comment']); 
     if(!empty($name) && !empty($comment)){ 
      $query = $connect->query("SELECT name,comment FROM comments WHERE name='$name' AND comment='$comment'"); 
      while($row = $query->fetch_object()){ 
       echo "<b>",$row->name,"</b><br/>",$row->comment; 
      } 
     } 
    } 
    ?> 
</pre> 

Ваша помощь будет оценена.

ответ

0

Отправляйте уникальное значение (созданное с помощью php's uniqid(), например) в скрытом поле в форме. При каждом отправке формы в браузер измените значение. Если вы дважды получаете одно и то же значение из одного и того же браузера, вы знаете, что это двойная запись.

Вы также можете вычислить хэш размещенной информации и сравнить это с хэшем того, что уже есть в базе данных, для скорости вы можете сохранить хэш для каждого комментария в базе данных.

Вы также можете ограничить это на уровне базы данных, например, с помощью замены вместо вставки (для mySQL).

+0

Хорошо, я обновил свое правописание и добавил некоторые недостающие слова. Я, должно быть, засыпал, когда писал это. Это правильный ответ, и я успешно использую эту технику для этой же цели (система комментариев с двойными сообщениями). Если вы собираетесь проголосовать, по крайней мере, дайте повод. – Arunas

 Смежные вопросы

  • Нет связанных вопросов^_^