Problem mit formular <form>

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

  • Problem mit formular <form>

    Hallo,

    ich bin neu hier und bei PHP und habe folgendes Problem. Die angehängte Funktion funktioniert soweit (Update wird durchgeführt), allerdings werden nach dem submit nur die beiden Bemerkungen geleert, die ID und die Nutzerinfo jedoch nicht.
    Wie bekomme ich es hin, dass nach dem Submit das Formular neu geladen wird (komplett geleert wird)?
    Hab das auch schon bei php.de gepostet, allerdings ohne eine einzige Antwort...



    PHP-Code:
    function bemerkungen(){
        global 
    $wpdb;

          
    $actionURL admin_url'admin.php?page=bemerkungen' );

                
    $ID $_POST['ID'];
                
    $Bemerkungen_Eingang $_POST['Bemerkungen_Eingang'];            
                
    $Bemerkungen_Ausgang $_POST['Bemerkungen_Ausgang'];            
                
    $bemerk $wpdb->get_results("SELECT * FROM users WHERE ID = " $ID);
                foreach(
    $bemerk as $bem){

                };
    if(isset(
    $_POST['senden'])){
        
    $wpdb->query(
            
    "
            UPDATE users
            SET Bemerkungen_Ausgang = '"
    .$Bemerkungen_Ausgang."', Bemerkungen_Eingang = '".$Bemerkungen_Eingang."'
            WHERE ID = '" 
    $ID "'
            "
    );
    }


        echo
    " <div id='poststuff'>

            <div id='post-body' class='metabox-holder columns-2'>

            <!-- main content -->
            <div id='post-body-content'>
            <div class='postbox'><div class='inside'>

        <h2>Bemerkungen ändern</h2><br>
        <form method='post' action='
    $actionURL' >
    <p>
        Postfachnummer:
        <input type='text' autofocus name='ID'  value='
    $bem->ID' size='8'><br><br>
        Bemerkungen History:
        <input type='text' name='Bemerkungen_Eingang' id='Bemerkungen_Eingang' value='
    $bem->Bemerkungen_Eingang' size='40'><br><br>
        Bemerkungen Ausgang:
        <input type='text' name='Bemerkungen_Ausgang' value='
    $bem->Bemerkungen_Ausgang' size='40'><br><br>
        </p>"
    ;
         
    nutzerinfo($_POST['ID']);
         echo
    "
    <p>
        <br><br><input type='submit' name='senden'><br>
    </p>
        </form>

        </div></div></div></div></div>    "
    ;



  • #2
    Kann mehrere Gründe haben. Ich dachte eigentlich gerade "ach, da kann ich bestimmt auch mal helfen", aber dann sind mir mehrere Sachen aufgefallen.

    Der Code ist schlecht formatiert, heißt nicht sauber eingerückt. Das macht es unglaublich schwer den Code zu lesen, vorallem für Außenstehende. Ich musste mir das erst mal in den Editor hauen und selbst richtig einrücken, bevor ich anfangen konnte es zu lesen. Und dann hatte ich irgendwie keine Lust mehr.

    Du schreibst dir am Anfang mehrere POST-Variablen direkt in eine andere Variable - keine gute Idee. Du solltest immer prüfen, ob es die Variable überhaupt gibt und wenn die Variablen dann noch in eine Datenbankabfrage wandern, gehören die Daten irgendwie geprüft oder sonst wie bearbeitet, wie zum Beispiel IDs strikt in Integer umgewandelt. Wenn es keine Zahl ist, dann wird da halt eine 0 draus, aber niemals eine manipulierte Datenbankabfrage.

    Du verwendest "SELECT *", was man machen kann, aber nicht so gern gesehen ist. Hat Gründe, aber darauf liegt denke ich noch nicht der Fokus. Aber vielleicht auch ein Grund, wieso keiner antworten möchte.
    Und da schreibst du quasi direkt die $_POST['ID'] in dein Query, wie gesagt nicht gut. Guck dir mal "Prepared Statements" an.

    Und jetzt fehlt mir leider gerade die Zeit mir den Rest anzusehen. Aber vielleicht hilft dir das ja an anderer Stelle schon mal etwas.

    Kommentar

    Lädt...
    X