Einträge in MySql nach Neuladen der Seite doppelt.

  • Hallo, ich bin dabei eine Kommentarsektion zu erstellen. Die Verbindung zwischen DB und der Seite funktioniert, aber wenn ich die Seite neu lade, dann wird auch ein neuer eintrag in der DB erzeugt, welcher allerdings zur selben zeit geschrieben wurde wie der Originale.


    Hier die Methode von den Comments:

    PHP
    1. <?php
    2. echo "<form method='POST' action='".setComments($conn)."'>
    3. <input type='hidden' name='uid' value='Anonymous'>
    4. <input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'>
    5. <textarea name='message'></textarea><br>
    6. <button type='submit' name='commentSubmit'>Absenden</button>
    7. </form>";
    8. getComments($conn);
    9. ?>
  • Hey,


    du kannst dafür auch einfach nach dem erfolgreichen Absenden des Formulares die gleiche Seite mit header() aufrufen. Dann entstehen auch keine Doppelteinträge mehr und das Formular kann auch nicht mit den gleichen Daten mehrmals abgesendet werden.


    Kannst du bitte deinen Code zukünftig in die entsprechenden Code-Tags, oben in der Navbar das 3. von rechts (</>), einfügen. Dies erleichtert uns Helfern deutlich die Lesbarkeit des Codes. Desweitern hast du in deinem Code eine SQL-Injection Lücke drin, welche sehr schnell böse enden kann und du filterst nicht die eingegebenen Formulardaten. Das ist auch riskant. Man soll die eingehenden Formulardaten immer als potenziell gefährlich ansehen, und diese so behandeln.


    Rückst du deinen Code denn ein? Wenn nein, dann mache das bitte. Dies erleichtert dir die Zusammenhänge zu verstehen und erleichtert deutlich auch die Lesbarkeit.


    Schau dir, um eine SQL-Injection sowie weitere Gefahren auszuschließen, dieses Kapitel an: Sichere Programmierung mit PHP.


    Grüße,

    Stef