Formulardaten nur unvollständig übertragen

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

  • Formulardaten nur unvollständig übertragen

    Hallo Profis,

    bin PHP-Frischling, also nicht gleich losprügeln :-)

    Ich habe eine PHP-Datei eingabe.php. Sie enthält ein Formular mit Namen, Adresse, Telefon usw.

    Über <form action="eintragen.php" method="post"> sollen die Daten an die Datei eintragen.php übergeben werden und in die Datenbank eingetragen werden. Klappt auch ganz gut. Bis auf die Telefonnummer z.B.! Wenn sie lautet 089 774546 dann wird nur die 089 in die Datenbank eingetragen ab dem Leerzeichen nichts mehr!

    Was mache ich falsch?

    Besten Dank für Eure Hilfe!

    Euer Al

  • #2
    Wie wär's mit etwas code?
    mens agitat molem

    Kommentar


    • #3
      Ja, gute Idee, also hier ein Auszug aus eingabe.php:


      if(!isset($_POST['submitcheck']))
      {
      echo '<form action="eintragen.php" method="post">';
      echo '<input type="submit" name="submitcheck" value="Abschicken" class="button">;
      echo '<a href="abbrechen.php">Abbrechen</a>';
      echo '<input type="text" name="nname" size="32" class="input">';
      echo '<input type="text" name="adresse" size="32" class="input">;
      echo '<input type="text" name="telefon" size="32" class="input">;
      }


      Und in eintragen.php hole ich mir die Daten, z.B.:

      $adresse = $_POST['adresse'];
      $telefon = $_POST['telefon'];
      $nname = $_POST['nname'];

      Kommentar


      • #4
        Hinter deinen echo's fehlen jede Menge abschließende ' Zeichen.

        Vielleicht würde es helfen, wenn du hier im Forum mal die PHP-Tags verwenden würdest. Lies bitte mal die Forum-Regeln.
        mens agitat molem

        Kommentar


        • #5
          ich weiß, habe die tabellen-tags rausgeschnitten und dabei hier und da ein ' gelöscht im originalskript ist alles richtig und funktioniert bis auf das was ich oben geschildert habe!

          Kommentar


          • #6
            nutzt du beim eintragen in die db zb intval() oder so??!
            Das würde auf das von dir beschriebene Problem passen.
            Abhilfe schafft da zb:
            PHP-Code:
            $foo preg_replace('/[^\d]/','$1',$foo); 
            um alle nicht numerischen Zeichen aus dem String zu entfernen.
            Hatte das Problem, da einige ihre ICQ Nummer mit Bindestrichen angeben...
            MfG

            Kommentar


            • #7
              Hey danke,

              probier ich nachher gleich mal aus. Jedoch wäre es schade, wenn dabei Infromationen verloren gehen! +49 30 45878574, da würde das + ja wegfallen und die Telfeonnummer wär auch nicht mehr so schön. Außerdem gehen doch die Infos schon bei der Formularübertragung verloren oder? wie soll ich sie denn vorher formatieren können?

              Kommentar


              • #8
                nein das liegt nich daran sondern einfach daran, dass das du evtl intval() oder ähnliches nutzt, dass daraus eine zahl macht.. dann musst du die information halt als string in der datenbank speichern und nicht als int

                Kommentar


                • #9
                  Hi,

                  ich habe es mal getestet. Trifft leider alles nicht zu, was ihr geschrieben habt. Trage ich die Daten direkt ein


                  PHP-Code:
                  <form action="<?php $PHP_SELF ?>" method="post">
                  klappt alles. Nur wenn ich es an ein anderes Formular abschicke, gehen Informationen verloren:

                  PHP-Code:
                  <form action="knddblpost.php" method="post"
                  Insbesondere scheinen Leerzeichen ein Problem zu sein. Habe ich eine Adressvariable mit dem Inhalt

                  Müller Straße 45

                  kommt nur Müller an. Ab dem Leerzeichen ist alles weg!

                  Kommentar


                  • #10
                    Original geschrieben von AlTheKingBundy
                    Trage ich die Daten direkt ein [...] klappt alles. Nur wenn ich es an ein anderes Formular abschicke, gehen Informationen verloren:
                    Was meinst du mit "an ein anderes Formular abschicken"?

                    Soll das heißen, dass du die Daten von Formular1 an Script1 schickst - und Script1 gibt dann Formular2 aus, in dem die Eingabefelder entsprechend vorbelegt wurden?

                    Insbesondere scheinen Leerzeichen ein Problem zu sein. Habe ich eine Adressvariable mit dem Inhalt
                    Müller Straße 45
                    kommt nur Müller an. Ab dem Leerzeichen ist alles weg!
                    Falls obiges zutrifft - dann hast du garantiert die Vorbelegungen falsch im HTML ausgegeben - z.b. um den Wert von value wieder mal idiotischerweise keine Anführungszeichen benutzt.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Hast du Testausgaben gemacht?
                      echo $_POST['NameDesFeldes'];

                      Hast du vll. in deiner MySQL-Query die >>'<< weggelassen? Ich weiß nicht... bin selber noch Neuling

                      Gruß
                      icecream
                      icedcream.de Webdesign Regensburg

                      Kommentar


                      • #12
                        Fehlende Zeichen

                        Maskier die " in deinen echo => \" oder nimm '
                        echo "hallo was ist los";
                        echo ' Hallo was ist los';

                        Nach Müller fehlt was.....also wirst du die Variable nicht in "" oder ' ' stehen haben.
                        z. B. <input ..... name=name ... statt name="name" schau mal nach.

                        Zusatz, da im Netz oft ein Problem disbezüglich entsteht und nachgefragt wird.
                        Beim Update auf php 5 gehen viele Formulare nicht mehr?
                        Variablen werden an eine 2. Seite übergeben....
                        Variablen wurde bisher bei dir mit der Variablennamen abgefragt, nimm einfach
                        $Name = $_POST['Name'];
                        dann gehts wieder...

                        Kommentar

                        Lädt...
                        X