2016-07-04 3 views
-2

updateupdateповторяющиеся сообщения после нажатия кнопки комментарий

Может кто-нибудь объяснить мне, почему я получаю дубликаты сообщений вместо одного? Как я могу изменить свой код, чтобы при вводе комментария и нажатии кнопки «Комментарий» будет отображаться только одно сообщение вместо дубликатов! Когда у меня есть один блок комментариев, он не показывает повторяющиеся комментарии, но если у меня больше одного, тогда он начинает дублировать!

COMMENT.INC.PHP

include 'cdbh.inc.php'; 
function setComments($con) 
{ 
    if (isset($_POST['commentSubmit'])) { 
     $uid = mysqli_real_escape_string($con,$_POST['uid']); 
     $date = mysqli_real_escape_string($con,$_POST['date']); 
     $message = mysqli_real_escape_string($con,$_POST['message']); 

     $sql = "INSERT INTO comments (uid, date, message) VALUES ('$uid','$date','$message')"; 
     $result = mysqli_query($con,$sql); 
    } 
} 

function getComments($con) 
{ 
    $sql = "SELECT * FROM comments"; 
    $result = mysqli_query($con,$sql); 
    while ($row=mysqli_fetch_assoc($result)) { 
     echo $row['uid']; 
     echo ":"; 
     echo $row['message']."<br><br>"; 
    } 
} 

кодовая страница

<?php 
    date_default_timezone_set('America/Los_Angeles'); 
    include 'comment.inc.php'; 
    include("connection.php"); 
?> 
    <!DOCTYPE html> 
    <html> 
     <head> 
      <meta charset="UTF-8"> 
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
      <link href="comment.css" rel ="stylesheet"> 
     </head> 
     <body> 
     <?php 
      $sql="Select * from tbl_images"; 
      $result=mysqli_query($connection,$sql); 
      while ($row=mysqli_fetch_array($result)) { 
     ?> 
     <img src="images/<?php echo $row['images_name'] ?>" width="200px" height="200px"> 
     <?php 
      echo "<form method ='POST' action ='".setComments($con)."'> 
        <input type ='hidden' name ='uid' value='unknown'> 
        <input type ='hidden' name ='date' value='".date('Y-m-d H:i:s')."'> 
        <textarea name='message'></textarea> 
        <button type ='submit' name='commentSubmit'>Comment</button> 
       </form>"; 
      } 
      getComments($con); 
     ?> 
    </body> 
</html> 
+0

Вы используете ajax/jQuery для отправки формы? Если это так, вы должны также разместить javascript. – jeroen

+0

Отлаживайте свой собственный код шаг за шагом, используя эхо и выход ... –

+1

Ваш скрипт находится под угрозой [SQL Injection Attack] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql -injection-in-php) Посмотрите, что случилось с [Little Bobby Tables] (http://bobby-tables.com/) Даже [если вы избегаете входных данных, это небезопасно!] (http: /stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) Используйте [подготовленный оператор и параметризованные утверждения] (http://php.net/manual/en/mysqli .quickstart.prepared-statements.php) – RiggsFolly

ответ

-1

Может быть, вы все завершения заполнения формы вместо одного .. проверить вашу базу данных для того, чтобы знать, от чего IMG приходит каждое сообщение. Если у вас есть другой код, например javascript, вы должны его опубликовать.

+2

Это комментарий, а не ответ. Пожалуйста, не оставляйте комментарии в качестве ответов, люди склонны понижать это. У вас всего лишь 50 баллов, чтобы прокомментировать что-либо, до тех пор, пока не встаньте на хорошо задаваемые вопросы, которые не нуждаются в разъяснении – RiggsFolly

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