[PHP5] Formularinhalte nicht verwerfen

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

  • [PHP5] Formularinhalte nicht verwerfen

    Hallo zusammen,

    ich habe ein kleines Formular gebastelt.

    Wird das Formular abgeschickt wird geprüft ob ein bestimmtes Feld ausgefüllt ist.

    Wenn dies nicht so ist, wird eine Fehlermeldung ausgegeben.

    Nun ist es allerdings so, dass alle Felder des Formulars geleert werden, wenn die Fehlermeldung angezeigt wird.

    Ich möchte nun erreichen, dass die Eingaben nicht gelöscht werden, sondern die Fehlermeldung angezeigt wird, die Inhalte aber gleich bleiben.

    Mein Ansatz war bisher so, dass ich am Anfang des Scripts eine Session starte:

    Code:
    session_start ();
    Den Feldern des Formulars weiße ich die Werte der Sessionvariablen zu, diese sollten ja am Anfang leer sein.

    Auszug:
    Code:
            <tr>
                    <td>Name: </td>
    
                    <td>
                    <input type="text" name="name" value="<?php echo $_SESSION["name"]; ?>" size="20"><br>
                    </td>
                    <td> &nbsp;
                    </td>
    
            </tr>
    
            <tr>
                    <td valign=middle>Vorname: </td>
    
                    <td>
                    <input type="text" name="vorname" value="<?php echo $_SESSION["vorname"]; ?>" size="20"><br>
                    </td>
            </tr>
    Beim abschicken des Formulars werden die Session Variablen dann belegt:
    Code:
    if (isset($_POST["order"]))
                    {
    
                                    $_SESSION["name"]=$_POST['name'];
                                    $_SESSION["vorname"]=$_POST['vorname'];
    .
    .
    .
    .
    und danach kommt dann eben die Sicherheitsabfrage:
    Code:
     if ($code==$code2)
    Leider klappt die Sache nicht so wie ich das will.
    Die Fehlermeldung wird angezeigt, aber alle Formularfelder sind wieder leer.

    Das Formular gibt die Daten per Post an die gleiche Datei zurück.

    Kann mir jemand bei meinem Denkfehler helfen?

    Vielen Dank.

    Gruß
    Euer Spreech

  • #2
    Du kannst versuchen zu debuggen, wie weit dein Script eigentlich kommt.
    PHP-Code:
    echo '<pre>';
    print_r($_POST);
    echo 
    '</pre>'
    Das fügst du einfach an Anfang deines Scriptes. Dann wo deine IF-Anweisung ist, kannst du mal prüfen, ob der überhaupt bis dahin kommt, in dem du einfach ein echo "blabla"; machst.

    Du kannst dir natürlich auch all die Mühe sparen und mal in meiner Signatur auf den Formulargenerator klicken der macht dir nämlich sowas
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Benny, nichts zu tun ... du läufst ja rum und machst Eigenwerbung

      Kommentar


      • #4
        Ne mal ehrlich, sind schon ziemlich viele die irgendwas mit nem Formular auf einmal haben. War doch ganz gut das Ding zu programmieren
        Nimmt einem viel Arbeit ab und der Quellcode ist sauber.
        Sunshine CMS
        BannerAdManagement
        Borlabs - because we make IT easier
        Formulargenerator [color=red]Neu![/color]
        Herkunftsstatistik [color=red]Neu![/color]

        Kommentar


        • #5
          Danke für die Tipps!

          Also wenn ich debugge, dann erscheint sowas hier:

          [code]
          [name] => asdasd
          [vorname] => asdadad
          Code:
           => z5ydqs9e
              [code2] => z5ydqs9e
              [order] => BESTELLEN
          müsste da nicht etwas von SESSION["name"] oder sowas in der art stehen?

          Also die Variablen müsste er richtig belegen.

          Ich mache erst die Variablendefinition und anschließend kommt erst die if Abfrage.
          Die Abfrage durchläuft er also ganz normal

          Weltklasse Aktion dass du so einen Formulargenerator anbietest, schaue ich auf jeden Fall einmal an!
          Da ich allerdings ganz am Anfang von php Arbeiten stehe und stets dazu lernen will und natürlich auch ein gewisser Ehrgeiz da ist, würde es mich doch auch freuen wenn ich mein Script so hinbekommen würde

          Kommentar


          • #6
            Du kannst auch in das <pre> Ding statt dem $_POST mal das $_SESSION schreiben, um zu prüfen ob die Session gefüllt ist.
            Sunshine CMS
            BannerAdManagement
            Borlabs - because we make IT easier
            Formulargenerator [color=red]Neu![/color]
            Herkunftsstatistik [color=red]Neu![/color]

            Kommentar


            • #7
              Wenn die Fehlerausgabe direkt beim Formular ist, gib direkt $_POST['bla'] aus und spar dir den Weg über die Session!

              Kommentar


              • #8
                hmmm also egal welchen weg ich nehme, es kommt leider nicht zum gewünschten ergebnis...

                hier einmal das komplette script:

                http://www.4webmaster.net/service_to...tm?get_code=30

                Vielleicht kann da einmal wer einen Blick drauf werfen und mir den Fehler sagen?

                Vielen Dank!
                Euer Spreech
                Zuletzt geändert von Spreech; 22.01.2008, 19:01.

                Kommentar


                • #9
                  Entweder Code umbrechen oder http://www.4webmaster.net/service_to...chenablage.htm benutzen.
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • #10
                    Hm ... also irgendwie erschließt sich mir der logische Ablauf nicht so ganz. Wenn nach dem Absenden eine Pflichtfeldüberprüfung stattfindet und das Formular bei Fehlern noch mal ausgegeben werden soll, steht Dein PHP Code an vollkommen falscher Stelle.

                    Mach Dir noch mal Gedanken über den Ablauf.
                    MM Newmedia | MeinBlog

                    Kommentar


                    • #11
                      Original geschrieben von Spreech
                      hmmm also egal welchen weg ich nehme, es kommt leider nicht zum gewünschten ergebnis...

                      hier einmal das komplette script:

                      http://www.4webmaster.net/service_to...tm?get_code=30

                      Vielleicht kann da einmal wer einen Blick drauf werfen und mir den Fehler sagen?

                      Vielen Dank!
                      Euer Spreech
                      Ähm ... wo muss session_start() stehen?

                      Lesen: http://www.php-resource.de/forum/sho...threadid=50454

                      und anschliessend (höchst wahrscheinlich) auch das hier: http://www.php-resource.de/forum/sho...threadid=62965

                      Kommentar

                      Lädt...
                      X