2016-07-04 8 views
-2

updateupdatedoppelte Nachrichten nach Kommentar Button

jemand mir erklären kann, warum ich doppelte Nachrichten anstelle eines bin immer? Wie kann ich meinen Code ändern, so dass wenn ich einen Kommentar eintippe und die "Comment" Taste drücke, wird nur eine Nachricht anstelle von Duplikaten angezeigt! Wenn ich ein Kommentarfeld habe, werden keine doppelten Kommentare angezeigt, aber wenn ich mehr als eins habe, beginnt es zu duplizieren!

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>"; 
    } 
} 

Seitencode

<?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

Verwenden Sie Ajax/jQuery, um das Formular zu senden? Wenn ja, sollten Sie auch das Javascript posten. – jeroen

+0

Debuggen Sie Ihren eigenen Code Schritt für Schritt mit Echos und Exits .... –

+1

Ihr Skript ist in Gefahr von [SQL Injection Attack] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql -injektion-in-php) Schauen Sie sich an, was mit [Little Bobby Tables] passiert ist (http://bobby-tables.com/) Sogar [Wenn Sie Eingaben entgehen, ist es nicht sicher!] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) Verwenden Sie [vorbereitete Anweisung und parametrisierte Anweisungen] (http://php.net/manual/en/mysqli . quickstart.prepared-statements.php) – RiggsFolly

Antwort

-1

Vielleicht ein alle Formen statt Sie submiting .. überprüfen Sie Ihre Datenbank, um aus welchem ​​img wissen kommt jede Nachricht. Wenn Sie anderen Code wie Javascript haben, sollten Sie es veröffentlichen.

+2

Dies ist ein Kommentar und keine Antwort. Bitte poste keine Kommentare als Antworten, Leute neigen dazu, dies zu verwerfen. Sie haben nur 50 Punkte, um etwas zu kommentieren, bis Sie sich dann an gut gestellte Fragen halten, die nicht geklärt werden müssen – RiggsFolly