Pflichtfelder im Formular

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

  • Pflichtfelder im Formular

    Hallo,

    ich habe ein Formular mit Pflichtfeldern, wobe ich möchte, dass PHP mir eine Fehlermeldung ausgibt, sobald ein Feld nicht ausgefüllt wurde.
    Nur klappt das bei mir nicht ganz.
    Ich möchte dass auch wenn mehere Felder fehlen, jedes mal eine neue Zeile gemacht wird.

    Z.B:
    Bitte vergessen Sie nicht Ihren Vornamen anzugeben!
    Bitte vergessen Sie nicht Ihren Nachamen anzugeben!


    Wer kann mir da helfen?
    Hier mein primitiver Code:

    PHP-Code:
    <?
    $vorname = ($_POST['vorname']);
    $nachname = ($_POST['nachname']);
    $mail = htmlentities (stripslashes ($_POST['mail']));
    $ort = ($_POST['ort']);
    $strasse = ($_POST['strasse']);
    $plz = ($_POST['plz']);
    $telefon = ($_POST['telefon']);
    $karten = ($_POST['karten']);
    $auffuehrung = ($_POST['auffuehrung']);

    // Pflichtfelder
        if ($mail == "") {
        print "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihre <B>email-Adresse</b> anzugeben!</b><br>";
        } if ($vorname == "") {
       print "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Vornamen</b> anzugeben!</b><br>";
        } else {


    print '<p align="left" class="normal"><b>Ok</b> - vielen Dank ' . $vorname;
    }
    ?>

  • #2
    Ich löse das immer so

    $fehler = false;

    if (empty($vorname))
    $fehler .= "Bitte Vorname angeben<br>";
    if ($empty($name))
    $fehler .= "Bitte Nachname angeben<br>":

    etc....

    if (!$fehler)
    echo $fehler; // Fehler ausgeben
    else
    echo "Danke"; //Bedanken wenn alles ok, oder halt in DB schreiben etc.

    Kommentar


    • #3
      außerdem solltest du keine variablen ungeprüft übernehmen:
      Prüfe importierte Parameter. Traue niemandem

      am besten ist ein whitelist-check, also nur strings zuweisen, deren zeichen explizit erlaubt sind.

      Kommentar


      • #4
        So?

        Hallo,

        das gibt bei mir immer eine Fehlermeldung:

        PHP-Code:
        $fehler false;

        if (empty(
        $vorname)) {
            
        $fehler .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihre <B>email-Adresse</b> anzugeben!</b><br>";
            } if (
        $empty($nachname)) {
            
        $fehler .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Nachname</b> anzugeben!</b><br>";
            }

        if (!
        $fehler) {
            echo 
        $fehler;
            } else { 
        Was stimmt da nicht?

        Kommentar


        • #5
          Re: So?

          PHP-Code:
          $fehler false;

          if (empty(
          $vorname)) {
              
          $fehler .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihre <B>email-Adresse</b> anzugeben!</b><br>";
              } if (
          $empty($nachname)) {  <--- HIER FEHLER
              $fehler 
          .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Nachname</b> anzugeben!</b><br>";
              }

          if (!
          $fehler) {
              echo 
          $fehler;
              } else { 
          empty ist eine Funktion und keine Variable also emtpy
          die {} kannst du dir sparen wenn du nur eine Anweisung in der IF hast. ({} Klammern machen aus mehreren Anweisungen eine)

          Das nächste mal in der Zeile suchen wo der Fehler kommt. Auch wenn es erstmal dauert.

          Kommentar


          • #6
            Nein

            Nein,

            das stimmt nicht!
            Da kommt mir immer eine Fehlermeldung!
            Bitte wer kann mir da weiterhelfen, ich muss das Skript heute noch online stellen...


            Daaaaanke

            Kommentar


            • #7
              Re: Nein

              Original geschrieben von werny
              Nein,

              das stimmt nicht!
              Da kommt mir immer eine Fehlermeldung!
              Bitte wer kann mir da weiterhelfen, ich muss das Skript heute noch online stellen...


              Daaaaanke
              du könntest deine beiträge auch etwas konstruktiver gestalten. poste deine fehlermeldung; hier sind fakten gefragt und keine aussagen alla "geht nicht.."

              beste grüße
              mfg

              Kommentar


              • #8
                Re: Nein

                Original geschrieben von werny
                Nein,

                das stimmt nicht!
                Da kommt mir immer eine Fehlermeldung!


                Welche denn?

                Kommentar


                • #9
                  Re: Pflichtfelder im Formular

                  Original geschrieben von werny
                  Hallo,

                  ich habe ein Formular mit Pflichtfeldern, wobe ich möchte, dass PHP mir eine Fehlermeldung ausgibt, sobald ein Feld nicht ausgefüllt wurde.
                  Nur klappt das bei mir nicht ganz.
                  Ich möchte dass auch wenn mehere Felder fehlen, jedes mal eine neue Zeile gemacht wird.
                  Dieser Dein Code macht pro Fehler 2 Zeilen. Allerdings kommt das Vielen Dank auch dann, wenn email einen Fehler hat.

                  Hast du das nicht bemerkt?

                  Und die Darstellung ist nicht super.

                  Kommentar


                  • #10
                    Fehlermeldung

                    Fehlermeldung:

                    Fatal error: Call to undefined function: () in /www/htdocs/..... on line 31

                    Kommentar


                    • #11
                      und wie lautet die zeile 31?
                      mfg

                      Kommentar


                      • #12
                        wie DENN?

                        Hallo,


                        Zeile 31 ist bei mir diese hier:

                        $fehler .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihre <B>email-Adresse</b> anzugeben!</b><br>";
                        } if ($empty($nachname)) {
                        ja dass das Ganze nicht sehr sauber ist habe ich bemerkt
                        Ich bin auf dem Gebiet leider noch Neuling..

                        Wie IST es denn sauber, bzw. wie programmiert man das denn am Besten?
                        Bitte helft mir weiter!!!!!! Danke.

                        Kommentar


                        • #13
                          PHP-Code:
                          $fehler false;

                          if (empty(
                          $vorname)) {
                              
                          $fehler .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihre <B>email-Adresse</b> anzugeben!</b><br>";
                              }
                          if (empty(
                          $nachname)) {
                              
                          $fehler .= "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Nachname</b> anzugeben!</b><br>";
                              }

                          if (
                          $fehler) {
                           echo 
                          $fehler;

                          mfg

                          Kommentar


                          • #14
                            Mach das zweite $ in Zeile 31 weg und alles wird viel besser.

                            Das wurde Dir übrigens schon lang geschrieben.

                            Kommentar


                            • #15
                              PHP-Code:
                              $errors = array();

                              //variablen bereinigen
                              $vorname htmlentities($_POST['vorname']);
                              $nachname htmlentities($_POST['vorname']);

                              //variablen auf inhalt prüfen und ggf. den fehler (hier einfach der feldname) in das array $errors packen
                              if ($vorname == '') {
                                
                              $errors[] = 'Vorname'
                              }

                              if (
                              $nachname '') {
                                
                              $errors[] = 'Nachname';
                              }

                              // gucken ob fehler auftrat/en
                              if (count($errors) > 0) {
                                
                              //wenn ja, fehler ausgeben
                                
                              echo 'Sie müssen folgende Felder ausfüllen!<br />' implode(', '$errors);
                                
                              } else {
                                
                              //wenn nicht, danke
                                
                              echo 'Vielen Dank für garnichts';

                              related (http://php.net/einerderfolgendenpunkte):
                              - htmlentities
                              - array
                              - count
                              - implode
                              MfG
                              aim
                              Lies mich jetzt!
                              - OT-Tags-Liebhaber und BB-Code-Einrücker -

                              Kommentar

                              Lädt...
                              X