Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Page-Reload

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Page-Reload

    Hallo,
    womöglich bin ich hier falsch aufgehoben, trotzdem:

    Ich habe einen Button in meiner Seite (Er ist Zeile einer Tabelle bestehend aus mehreren Datensätzen pro Zeile):

    HTML-Code:
    <a name="delete" href='./submittedIdeas.php?id=<?php echo $row['ID'] ?>'><button><svg xmlns="http://www.w3.org/2000/svg" width="18" height="17" viewBox="0 0 24 24"><path d="M9 19c0 .552-.448 1-1 1s-1-.448-1-1v-10c0-.552.448-1 1-1s1 .448 1 1v10zm4 0c0 .552-.448 1-1 1s-1-.448-1-1v-10c0-.552.448-1 1-1s1 .448 1 1v10zm4 0c0 .552-.448 1-1 1s-1-.448-1-1v-10c0-.552.448-1 1-1s1 .448 1 1v10zm5-17v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.315c0 .901.73 2 1.631 2h5.712zm-3 4v16h-14v-16h-2v18h18v-18h-2z"/></svg></button></a>
    Nach Klick auf den Button soll der Datensatz mit der jeweiligen ID gelöscht werden. Dafür habe ich diesen Code:

    PHP-Code:
    <?php
    $ID
    =$_GET['id'];
    $sql3="DELETE FROM db WHERE ID='$ID'";
    $pdo->query($sql3);
    echo 
    "<script>history.back();</script>"
    ?>
    Die Änderung soll sofort übernommen werden --> Die Seite wird aktualisiert. Allerdings finde ich keine passende Lösung. Hier seht ihr noch einen JavaScript-Code, der zu einer Dauerschleife geführt bzw. sofort ausgeführt wurde, ohne auf den Button geklickt zu haben. Womöglich kann man das verhindern mit einem isset? Danke!

    Danke!

  • #2
    Wenn Du Dich an die Reihenfolge Eingabe-Verarbeitung-Ausgabe hälst, müsste das eigentlich kein Problem sein.

    Nach dem "delete" fragst Du die Inhalte nochmal ab und baust dann die Seite auf.

    Kommentar


    • #3
      Und die Lösung sollte erstmal ohne JavaScript funktionieren. JavaScript kannst du dann einbauen, wenn erstmal die grundlegende Funktionalität gegeben ist.

      Du hast übrigens eine fette Sicherheitslücke, weil den Kontextwechsel nicht beachtest.

      Außerdem sollte GET nicht zum Löschen von Daten verwendet werden, weil dies viele unerwünschte Nebeneffekte haben kann. Verwende dafür POST.

      Kommentar


      • #4
        So wie der Code aussieht ist das auch eine saftige SQL Injection Lücke.

        Kommentar


        • #5
          Schau dir an wie Formulare funktionieren, Stichpunkt Affenformular. Das funktioniert ganz ohne Javascript.

          Kommentar

          Lädt...
          X