[gelöst] keine Fehlermeldung wenn im Formular leere Felder

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

  • [gelöst] keine Fehlermeldung wenn im Formular leere Felder

    Hallo
    habe folgendes Problem
    Mein Script sollte eigentlich eine Fehlermeldung ausgeben, wenn jmd beim FOrmular nicht alle Felder ausgefüllt hat und diese ausgeben. Ist leider nich der Fall ich finde den Fehler nicht kann jemand helfen ?

    HTML-Code:
    <form action="versand.php" method="post" class="Body">
    <table>
    <tr><td width="152" align="left" valign="middle">Name:</td>
    <td width="368" align="left" valign="middle"><input name="name" type="text" size="25"></td></tr>
    <tr>
    <td align="left" valign="middle"> Email:</td>
    <td align="left" valign="middle"><input name="mail" type="text" size="25"></td></tr>
    <tr>
      <td align="left" valign="middle">Telefon:</td>
      <td align="left" valign="middle"><input name="phone" type="text" size="25" id="phone"></td>
    </tr>
    <tr>
      <td align="left" valign="middle">&nbsp;</td>
      <td align="left" valign="middle">&nbsp;</td>
    </tr>
    <tr>
      <td align="left" valign="middle">Art der Feier:</td>
      <td align="left" valign="middle"><input name="event" type="text" size="25" id="event"></td>
    </tr>
    <tr>
      <td align="left" valign="middle">Datum:</td>
      <td align="left" valign="middle"><input name="date" type="text" size="25" id="date"></td>
    </tr>
    <tr>
      <td align="left" valign="middle">Uhrzeit:</td>
      <td align="left" valign="middle"><input name="hour" type="text" size="25" id="hour"></td>
    </tr>
    <tr>
      <td align="left" valign="middle">Anzahl Personen:</td>
      <td align="left" valign="middle"><input name="people" type="text" size="25" id="people"></td>
    </tr>
    <tr>
      <td align="left" valign="middle">Raucher:</td>
      <td align="left" valign="middle"><input name="smoker" type="text" id="smoker" value="ja / nein / gemischt" size="25"></td>
    </tr>
    <tr>
      <td align="left" valign="middle">&nbsp;</td>
      <td align="left" valign="middle">&nbsp;</td>
    </tr>
    <tr>
    <td align="left" valign="middle">Besondere Wünsche:</td>
    <td align="left" valign="middle"><textarea name="text" rows="10" cols="50"></textarea></td></tr>
    </table>
    <br>
    <input type="submit" value="Reservierung versenden">
    </form>
    PHP-Code:
    <?php
    $fehler 
    "";
    $name $_POST['name'];
    $mail $_POST['mail'];
    $phone $_POST['phone'];
    $event $_POST['event'];
    $date $_POST['date'];
    $hour $_POST['hour'];
    $people $_POST['people'];
    $smoker $_POST['smoker'];
    $text $_POST['text'];


    if (empty(
    $name)) {
    $fehler .= "<li>der Absendername fehlt</li>" ;
    }
    if (empty(
    $mail)) {
    $fehler .= "<li>die Mailadresse fehlt</li>" ;
    }

    if (empty(
    $phone)) {
    $fehler .= "<li>keine Telefonnummer eingetragen</li>" ;
    }
    if (empty(
    $event)) {
    $fehler .= "<li>kein Event eingetragen</li>" ;
    }
    if (empty(
    $date)) {
    $fehler .= "<li>kein Datum eingetragen</li>" ;
    }
    if (empty(
    $hour)) {
    $fehler .= "<li>keine Uhrzeit eingetragen</li>" ;
    }
    if (empty(
    $people)) {
    $fehler .= "<li>keine Anzahl der Personen eingetragen</li>" ;
    }
    if (empty(
    $smoker)) {
    $fehler .= "<li>Raucherfrage nicht beantwortet</li>" ;
    }


    if (empty(
    $fehler)) {
    if (
    get_magic_quotes_gpc()) {
    $text stripslashes($text);
    }
    $return chr(13).chr(10);
    $an "***" ;
    $betreff "Reservierung" ;
    $von "From: Reservierung <***" ;
    $datum "Datum: ".date("j.n.Y").$return;
    $zeit "Zeit: ".date("H:i").$return;
    $abs "Von: ".$name." <".$mail."> <".$phone.">".$return;
    $trennen "-----------------------------------------------".$return;
    $reservierung " Event: ".$event.$return." Datum: ".$date.$return." Uhrzeit: ".$hour.$return." Personen: ".$people.$return." Raucher: ".$smoker.$return." Besondere Wünsche: ".$text."";
    $nachricht "Reservierung versandt am: ".$datum.$zeit."".$abs.$trennen.$reservierung.$return;
    mail($an,$betreff,$nachricht,$von);
    }
    ?>

  • #2
    Cześć,

    zu diesem if fehlt der else-Teil, in dem dann die Ausgabe erfolgen müsste:
    PHP-Code:
    if (empty($fehler)) { 
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      dobry wieczór
      ich blick das nicht ganz bin leider nicht so fit in php

      PHP-Code:
      if (empty($name)) { 
      $fehler .= "<li>der Absendername fehlt</li>" 

      dachte da habe ich schon die meldung bestimmt ?

      Kommentar


      • #4
        Zitat von madeinpolska Beitrag anzeigen
        PHP-Code:
        if (empty($name)) { 
        $fehler .= "<li>der Absendername fehlt</li>" 

        dachte da habe ich schon die meldung bestimmt ?
        Da hast du eine Fehlermeldung an die Variable $fehler angehangen.

        Variableninhalte geben sich aber nicht von selber aus, das musst du schon noch explizit machen ... und die geeignetste Stelle dafür wäre ein ELSE-Block zu dem IF, in dem du die Verarbeitung vornimmst, wenn kein Fehler vorliegt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          also wäre das dann

          PHP-Code:
          if (empty($fehler)) {
          echo 
          "Reservierung erfolgreich versandt";
          } else {
          echo 
          $fehler; } 

          ??

          Kommentar


          • #6
            Genau, aber vielleicht sollte zusätzlich zur Fehlermeldung noch das Formular erneut angezeigt und mit den bereits eingegebenen Werten gefüllt werden, sonst müsste der Benutzer erst eine Seite zurück gehen und dann alles nochmal eintippen.

            Google mal nach "Affenformular".
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              danke die meldungen werden jetzt angezeigt beim umleiten
              aber das mit dem affenformular blicke ich halt mal garnicht
              dass die daten wieder drinnstehen wäre schon gut


              wie sieht das dann aus ?

              so?

              HTML-Code:
                  <input type="text" name="text"
                      value="<?php echo isset($_POST['text']) ? htmlspecialchars($_POST['text']) : ''; ?>" />

              Kommentar


              • #8
                Sehr gut, dem ist nichts hinzuzufügen!
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  irgendwas stimmt noch nicht
                  muss das in jedes feld von input type text zb name email etc ??

                  Kommentar


                  • #10
                    Ja in jedes, aber nicht nur Textfelder. Auch Select-Boxes sollten vorbelegt werden mit selected="selected" für das entsprechende option-Element und Checkboxes und Radiobuttons mit checked="checked".
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      ok bei mir gibts nur textfelder
                      irgendwie funktioniert es trotzdem nicht ?
                      muss das auch bei form action oder submit rein ??

                      Kommentar


                      • #12
                        Nein, dort musst du nur drauf achten, dass method="post" angegeben ist und action auf dieselbe Seite (mit dem Formular) verweist. Bei dir verweist dieses Attribut derzeit auf "versand.php". Wenn das die PHP-Datei mit dem Formular ist, dann ist das richtig. Wenn nicht, ist das der Grund, warum es nicht funktioniert.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          versand.pjp ist die php datei in der die mail versendet wird
                          das formular ist in einer html datei -> reservierung.html

                          also der code ist wie er gepostet ist in 2 verschiedenen dateien - wie löse ich das problem jetzt?
                          Zuletzt geändert von madeinpolska; 16.10.2009, 11:35.

                          Kommentar


                          • #14
                            Die reservierung.html in reservierung.php umbenennen und dort den Auswertungscode einbauen.
                            PHP-Code:
                            $fehler "";
                            // alles testen und $fehler füllen
                            if (empty($fehler)) {
                                
                            // Mail verschicken
                                // Bestätigung, Dank, ... anzeigen
                            }
                            else {
                                if (!empty(
                            $_POST)) {
                                    
                            // Fehler ausgeben
                                
                            }
                                
                            // Formular nochmal anzeigen

                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              also jetzt kommt gar keine email mehr an...
                              der code sieht wie folgt aus

                              Reservierung.html
                              HTML-Code:
                              <style type="text/css">
                              .Body {
                                  color: #463c3c;
                                  font-family: 'HoeflerText-Regular', 'Hoefler Text', 'Times New Roman', serif;
                                  font-size: 14px;
                                  font-style: normal;
                                  font-variant: normal;
                                  font-weight: normal;
                                  letter-spacing: 0;
                                  line-height: 17px;
                                  margin-bottom: 0px;
                                  margin-left: 0px;
                                  margin-right: 0px;
                                  margin-top: 0px;
                                  opacity: 1.00;
                                  padding-bottom: 0px;
                                  padding-top: 0px;
                                  text-align: left;
                                  text-decoration: none;
                                  text-indent: 0px;
                                  text-transform: none;
                              }
                              </style>
                              
                              <form action="versand.php" method="post" class="Body">
                              <table>
                              <tr>
                                <td colspan="2" align="left" valign="middle">Um zu reservieren bitte <strong>alle Felder</strong> ausfüllen!</td>
                                </tr>
                              <tr><td width="152" align="left" valign="middle">Name:</td>
                              <td width="368" align="left" valign="middle"><input name="name" type="text" size="25"></td></tr>
                              <tr>
                              <td align="left" valign="middle"> Email:</td>
                              <td align="left" valign="middle"><input name="mail" type="text" size="25"></td></tr>
                              <tr>
                                <td align="left" valign="middle">Telefon:</td>
                                <td align="left" valign="middle"><input name="phone" type="text" size="25" id="phone"></td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">&nbsp;</td>
                                <td align="left" valign="middle">&nbsp;</td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">Art der Feier:</td>
                                <td align="left" valign="middle"><input name="event" type="text" size="25" id="event"></td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">Datum:</td>
                                <td align="left" valign="middle"><input name="date" type="text" size="25" id="date"></td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">Uhrzeit:</td>
                                <td align="left" valign="middle"><input name="hour" type="text" size="25" id="hour"></td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">Anzahl Personen:</td>
                                <td align="left" valign="middle"><input name="people" type="text" size="25" id="people"></td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">Raucher:</td>
                                <td align="left" valign="middle"><input name="smoker" type="text" id="smoker" value="ja / nein / gemischt" size="25"></td>
                              </tr>
                              <tr>
                                <td align="left" valign="middle">&nbsp;</td>
                                <td align="left" valign="middle">&nbsp;</td>
                              </tr>
                              <tr>
                              <td align="left" valign="middle">Besondere Wünsche:</td>
                              <td align="left" valign="middle"><textarea name="text" rows="10" cols="50"></textarea></td></tr>
                              </table>
                              <br>
                              <input type="submit" value="Reservierung versenden" />
                              </form>

                              und versand.php
                              PHP-Code:
                              <?php
                              $fehler 
                              "";
                              $name $_POST['name'];
                              $mail $_POST['mail'];
                              $phone $_POST['phone'];
                              $event $_POST['event'];
                              $date $_POST['date'];
                              $hour $_POST['hour'];
                              $people $_POST['people'];
                              $smoker $_POST['smoker'];
                              $text $_POST['text'];


                              if (empty(
                              $name)) {
                              $fehler .= "<li>der Absendername fehlt</li>" ;
                              }
                              if (empty(
                              $mail)) {
                              $fehler .= "<li>die Mailadresse fehlt</li>" ;
                              }

                              if (empty(
                              $phone)) {
                              $fehler .= "<li>keine Telefonnummer eingetragen</li>" ;
                              }
                              if (empty(
                              $event)) {
                              $fehler .= "<li>kein Event eingetragen</li>" ;
                              }
                              if (empty(
                              $date)) {
                              $fehler .= "<li>kein Datum eingetragen</li>" ;
                              }
                              if (empty(
                              $hour)) {
                              $fehler .= "<li>keine Uhrzeit eingetragen</li>" ;
                              }
                              if (empty(
                              $people)) {
                              $fehler .= "<li>keine Anzahl der Personen eingetragen</li>" ;
                              }
                              if (empty(
                              $smoker)) {
                              $fehler .= "<li>Raucherfrage nicht beantwortet</li>" ;
                              }


                              if (empty(
                              $fehler)) {
                              if (
                              get_magic_quotes_gpc()) {
                              $text stripslashes($text);
                              }
                              $return chr(13).chr(10);
                              $an "***" ;
                              $betreff "Reservierung" ;
                              $von "From: Reservierung <***>" ;
                              $datum "Datum: ".date("j.n.Y").$return;
                              $zeit "Zeit: ".date("H:i").$return;
                              $abs "Von: ".$name." <".$mail."> <".$phone.">".$return;
                              $trennen "-----------------------------------------------".$return;
                              $reservierung " Event: ".$event.$return." Datum: ".$date.$return." Uhrzeit: ".$hour.$return." Personen: ".$people.$return." Raucher: ".$smoker.$return." Besondere Wünsche: ".$text."";
                              $nachricht "Reservierung versandt am: ".$datum.$zeit."".$abs.$trennen.$reservierung.$return;
                              mail($an,$betreff,$nachricht,$von);
                              }
                              ?>
                              <html>
                              <head>
                              <title>Reservierung</title>
                              <meta http-equiv="refresh" content="5; URL=../Reservierung.html">
                              <meta name="keywords" content="automatic redirection">
                              </head>
                              <body>
                              Sie werden umgeleitet.
                              <?php
                              if (empty($fehler)) { 
                              echo 
                              "Reservierung erfolgreich versandt"
                              } else { 
                              echo 
                              $fehler; } 
                              ?>
                              </body>
                              </html>
                              wo ist der fehler ? ich blicks nicht
                              wenn man auf versenden klickt und alles eingegeben hat kommt zwar die meldung aber keine mail wird versand :?

                              Kommentar

                              Lädt...
                              X