php Variable über input-button weitergeben.

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

  • php Variable über input-button weitergeben.

    Hi Leutz,
    ich hab ein Problem: ich will einen Löschen-Button machen, der einen Datensatz aus einer Datenbank löscht. So weit so gut. Die Datenbank wird geöffnet, die Daten ausgelesen und ausgegeben und der Button zum löschen wird angezeigt. Wie kann ich ihn jetzt aber so verarbeiten lassen, dass er das php Skript aufruft, welches dann diesen bestimmten Datensatz löscht bzw. wie kann ich aus dem input button heraus dem php-Skript sagen welchen Datensatz es löschen soll?
    Hier noch der bisherige Code:
    PHP-Code:
    <?php
    echo "<table border=1 bgcolor=\"#FFFF00\"><form method=\"post\">";
    while(
    $row=mysql_fetch_row($result)) {
    $id=$row[2];
    $sql="DELETE FROM diefilmschneiderei_blog WHERE id=$id";
    echo 
    "<tr><td>" $row[0] . "</td><td>" $row[1] . "</td><td>";
    ?>
    <input type="BUTTON" name="example">
    <?php
    echo "</td></tr>";
    }
    echo 
    "</form></table>";?>
    Zuletzt geändert von jotob; 05.06.2008, 16:04.

  • #2
    Hallo!

    Du musst als erstes mal ein action atribut in deinem Formular hinein bauen das muss nicht unbedingt ausgefüllt sein aber muss da sein!

    Zum nächsten brauchst du noch ein hidden feld im furmular einbauen wo du zum beispiel echo $row['id'] in den value schreibst!

    und dann musst du natürlich kein button nehmen sondern einen submit also die hier type="submit"!

    Und ich hoffe wie du das mit einem kleinen if in php realisierst weist du!

    Du versuchst in deinem Delete nach id zu löschen nur übergibst du gar keine id!

    mfg der Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      ok hat geklappt. Danke dir. Hier der neuste Code:
      PHP-Code:
      while($rowaus=mysql_fetch_row($resultaus)) {
      echo "<form method='post' name='del'>";
      $id=$rowaus[2];
      echo "<tr><td>" . $rowaus[0] . "</td><td>" . $rowaus[1] . "</td><td>";?><input type="hidden" name="id2"value="<?php echo $id?>"><input type="submit" name="Loeschen" value="L&ouml;schen"><?php
      echo "</td></tr></form>";}
      und zum löschen:
      PHP-Code:
      if ($_POST['Loeschen']) {
        
      $iddel=$_POST["id2"];
        
      $sqldel="DELETE FROM diefilmschneiderei_blog WHERE id=$iddel";
        echo 
      "id: " $iddel " ";
        
      $resultdel=mysql_query($sqldel);
        if (
      $resultdel) {
          echo 
      "Eintrag wurde gel&ouml;scht";
        }
        elseif(!
      $resultdel) {
          echo 
      "Ein Fehler ist aufgetreten: " mysql_error();
        }

      mfg jotob

      Kommentar


      • #4
        Schreibe diese Zeile mal lieber so hier!

        PHP-Code:
        if ($_POST['Loeschen']) {

        //ändern in
        if (isset($_POST['Loeschen'])) 
        Damit prüfst du ob der Button auch wirklich gesetzt ist bzw. gedrückt wurde!
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        http://www.lit-web.de

        Kommentar


        • #5
          und wenn ich Lust habe, schicke ich einen Post-Request an deinen Server wo in dem HiddenFeld einfach '1 OR 1' steht und schon ist deine gesamte Datenbank leer. Wieso das so ist findest du unter dem Stichwort SQL Injection

          Kommentar


          • #6
            sorry aber ich komm grad nicht ganz mit. Wo willst du 1 OR 1 reinschreiben? Die id kommt aus der Datenbank. der User hat also keinen Zugriff darauf und kann daher auch nicht die id ändern. Ich hoffe das ist was du meintest.
            mfg jotob

            Kommentar


            • #7
              rechte maustaste, seite speichern unter, lokal die html-datei editieren aus <input ... id="2"> ein <input ... id="2 OR 1=1"> machen und den submit-button drücken. das wars dann mit deiner db.

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Ja du solltest dich auf alle Fälle über SQL Injektions belesen. Und aber auch deine Formular Validierung. Ich mache das eigentlich immer mit einem preg_match da kann ich sicher sein das auch wirklich nur das ankommt was ich erwarte. Gegen Sql Injektions hift die Funktion mysql_real_escape_string. Vorher solltest aber prüfen ob magic_quotes auf on stehen das machst du damit get_magic_quotes_gpc()!

                Wenn magic_quotes auf on stehen und du zusätzlich noch mal escapesd dann wird zu Fehlern kommen,mit get_magic_quotes_gpc() kannst darauf im Vorfeld reagieren!

                Wenn du IDs übergibst oder nach IDs eine Handlung wie Update oder Delete machen willst reicht es die ID als eine wirkliche Zahl festzulegen z.B. so!

                Where id=".(int)ID."

                mfg der Litter
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                http://www.lit-web.de

                Kommentar

                Lädt...
                X