Ankündigung

Einklappen
Keine Ankündigung bisher.

Formulardaten werden nicht übermittelt

Einklappen

Neue Werbung 2019

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

  • Formulardaten werden nicht übermittelt

    Hallo zusammen,
    seit gefühlten tagen suche ich nun nach der Ursache für mein Problem und befürchte, dass ich mittlerweile so verwirrt und betriebsblind bin, dass ich die Lösung nicht mal sehen würde, wenn sie mir auf die Finger fällt.
    Ich habe ein html-script mit einem Formular in eine php-Datei includiert. Nun möchte ich die Werte aus dem Formular in eine Datenbank speichern aber leider wird das Script nicht ausgeführt. Ich erhalte jedoch auch keine Fehlermeldung. Es geschieht nach der Verbindung zur Datenbank scheinbar nichts mehr. Daher bitte ich Euch, einen Blick über die Codes zu werfen und mich aus der Krise zu befreien. Mir in meinem Anfängerstatus fällt nichts mehr ein. Ein Sorry für die fehlende Einrückung - wird das nicht dargestellt hier im Editor?

    Ich danke Euch.

    Hier die Code-Auszüge:
    <html>
    <form method="post" action="">
    <fieldset class="radio">
    <input id="female" type="radio" name="female" value="female">
    <input id="male" type="radio" name="male" value="male">
    </fieldset>
    <fieldset>
    <input id="name" type="text" name="name" value="" placeholder="Vorname" >
    </fieldset>
    <fieldset>
    <input id="surname" type="text" name="surname" value="" placeholder="Nachname" >
    </fieldset>
    <fieldset>
    <input id="email" type="text" name="email" value="" placeholder="Email-Adresse" >
    </fieldset>
    <fieldset>
    <input id="password" type="password" name="password" value="" placeholder="Passwort">
    </fieldset>
    <button type="submit">Absenden</button>
    </form>
    </html>

    <?php
    //HTML Dokument einbinden/aufrufen.
    ob_start();
    include ('C:\xampp\...\layout.html'); // ist vollständig angegeben
    //Verbindung zur Datenbank herstellen. Connect Ist vollständig notiert.
    $db = mysqli_connect('localhost','root','',‘…‘) or die ('Verbindung konnte nicht hergestellt werden');


    // !!!Hier scheint es auszusteigen – ein echo `…`; wird angezeigt.
    if (isset($_POST['submit'])){
    //Anmeldedaten auslesen!
    $email = mysqli_real_escape_string($db,trim($_POST['email']));
    $name = mysqli_real_escape_string($db,trim($_POST['name']));
    $surname = mysqli_real_escape_string($db,trim($_POST['surname']));
    $password = mysqli_real_escape_string($db,trim($_POST['password']));
    $female = mysqli_real_escape_string($db,trim($_POST['female']));
    $male = mysqli_real_escape_string($db,trim($_POST['male']));

    if (!empty($email) && !empty($name) && !empty($surname) && !empty($password) &&
    !empty($female)&& !empty($male)){
    //Abgleich, ob email bereits registriert.
    $sql = "SELECT * FROM registry WHERE email = '$email'";
    $daten = mysqli_query ($db, $sql);
    if (mysqli_num_rows($daten)== 0) {
    //Benutzername einzigartig, also eintragen.
    $sql="INSERT INTO registry(email, name, surname, password, female, male)".
    "VALUES ('$email','$name', '$surname', '$password','$female','$male')";
    mysqli_query($db,$sql);
    //Dem Benutzer die erfolgreiche Anmeldung bestätigen
    echo 'Sie wurden registriert';
    msqli_close($db);
    exit();
    }else {
    //EMail ist bereits registriert.
    echo 'Sie sind bereits registriert. Bitte loggen Sie sich ein.';

    }
    }else {
    echo 'Bitte füllen Sie alle Felder aus';
    }
    }
    mysqli_close($db);
    ?>

  • #2
    Zitat von Desaster Beitrag anzeigen
    Ein Sorry für die fehlende Einrückung - wird das nicht dargestellt hier im Editor?
    Nutze die [PHP]- oder [CODE]-Tags, dann wird der Code auch formatiert dargestellt.

    Kommentar


    • #3
      Ein
      PHP-Code:
      print_r($_POST['submit']); 
      wird dir weiterhelfen
      Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

      Kommentar


      • #4
        Die Lösung ist ziemlich simpel.
        Code:
        <button type="submit">Absenden</button>
        ist schlicht und ergreifend falsch.
        Siehe:
        http://de.selfhtml.org/html/formular...m#herkoemmlich
        und
        http://de.selfhtml.org/html/formular...ons.htm#modern

        Wer sein Formular also nicht abschickt braucht sich nicht wundern

        Kommentar


        • #5
          Hey,
          vorerst Danke für die Anregungen. Werde mich damit jetzt erst mal befassen und versuchen umzusetzen.

          Kommentar


          • #6
            Hey,
            *leider* war der Tipp mit dem fehlenden Absenden nicht Lösung des Problems.
            Mit "print_r" wurde mir angezeigt, dass die Werte aus dem Formular korrekt in die Variablen geschrieben werden. Also steigt das Script nicht in die if-Verzweigung ein - sehe ich das richtig?

            Kommentar


            • #7
              Um es noch einmal zu verdeutlichen:
              PHP-Code:
              <button type="submit">Absenden</button
              Wie heißt dieses Formularfeld sprich wie ist der Name?
              Wie kann bei
              PHP-Code:
              print_r($_POST['submit']); 
              bitte ein Wert rauskommen?

              Das das Absenden mit einem button ohne JS überhaupt funktioniert hat mich tatsächlich überrascht. Nach den SelfHTML Infos dürfte das nämlich nicht funktionieren.

              Kommentar


              • #8
                OH! TessaKavanagh, da muss ich mich entschuldigen. es ist tatsächlich ein JS-Script vorgeschaltet. Ich dachte, es sei nicht wichtig für mein Problem. mit
                PHP-Code:
                print_r($_POST)
                echo 
                '<pre>'
                wird das Array mit Inhalt auf der Seite angezeigt.
                Array ( [name] => Master [surname] => ofDesaster [email] => hier@heute [password] => Passwort ).
                Wenn es Euch schwer fallen sollte, meinen Ausführungen zu folgen, könnte es daran liegen, dass ich ein echter Anfänger bin. Wahrscheinlich drücke ich mich doch häufig nicht ganz korrekt aus.

                Kommentar


                • #9
                  Äh es fällt nicht schwer.
                  ABER! Der Code Lautet
                  PHP-Code:
                  print_r($_POST['submit']); 
                  und nicht
                  PHP-Code:
                   print_r($_POST); 
                  .

                  Als Tipp es hat schon seinen Grund warum uha das genau so geschrieben hat. Deine Abwandlung verändert die Funktionsweise (aber auch da kannst du deinen Fehler erkennen.)

                  Wenn du also jetzt mal 1 und 1 zusammenzählst sollte die Lösung doch auf der Hand liegen. Alternativ kannst du mir doch aus dem ausgegebenen Array sicherlich mal den Wert zum index "submit" vorlesen.

                  Im übrigen scheint es auch tatsächlich ohne JS zu gehen (Was mich dennoch wundert.) ich habe den Code einfach mal kopiert gehabt und da das JS da nicht drinne steht scheint es auch so zu klappen.

                  Kommentar


                  • #10
                    Es tut mir echt leid, irgendwo habe ich mich festgefahren. Was ich jedoch nicht kann, ist, den Wert des 'submit' vorlesen, "undefined Index". Ich weiß leider nicht, was ich nicht weiß.

                    Kommentar


                    • #11
                      Du prüfst einen Index darauf ob er existiert, gleichwohl hast du diesen Index nicht definiert. Du machst also eine WAHR Abfrage ob der Index "submit" existiert. Da du aber nirgends diesen Index in deinem Formular verwendest (name="submit") kann die Abfrage ob der 'Index existiert nur FALSE zurückgeben. Der Code innerhalb der Bedingung kann niemals ausgeführt werden. (Das wird er nur wenn die Prüfung WAHR ergibt.)

                      Wo name="submit" in deinem Code also einzubauen ist wirst du jetzt aber herausfinden können.

                      Kommentar


                      • #12
                        Vielen Dank TessaKavanagh,
                        super schöne Erläuterung! Klasse, sowas fehlt beim Selbststudium nunmal. Eine Erklärung mit anderen Worten.
                        Und, ich bin jetzt einen Schritt weiter schwere Geburt. Das Script meldet mir zwar, wenn ich nicht alles ausfülle aber wenn ich alles brav ausgefüllt habe, werden die Daten nicht in die Datenbank geschrieben. Ich werde jetzt nochmal eine neue Datenbank anlegen. Gibt es was, worauf ich unbedingt achten sollte außer einen Primärschlüssel setzen, die entsprechenden Felder "NotNull" setzen und utf-8 als Format zu wählen? Kann es sein, dass ich beim Erstellen der Datenbank einen Fehler gemacht habe und deshalb nichts eingetragen werden kann?

                        Kommentar


                        • #13
                          Ähm?

                          du musst dem Submit BUTTON im Formular das Atribut (name="submit") verpassen! Was hat das jetzt mit deiner Datenbank zu tun?

                          Kommentar


                          • #14
                            ja, das hab ich getan - nachdem ich es dann ENDLICH mitgeschnitten habe.*schäm* Und nun wird das Script auch aufgerufen / ausgeführt ausser der if-Verzweigung zum Abgleich bzw. Eintragen in die Datenbank.

                            Kommentar


                            • #15
                              Poste doch bitte mal den aktuellen Code

                              Kommentar

                              Lädt...
                              X