Pflichtfelder und doppeltes Versenden beheben.

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

  • Pflichtfelder und doppeltes Versenden beheben.

    Hallo,

    ersteinmal einen schönen guten Abend. Bin neu hier und ehrlichgesagt ist das ganze Thema PHP für mich Neuland. Mit Müh und Not habe ich ein Formular von ASP auf PHP umändern können. Nun ist folgendes:

    Momentan kann man das Formular ohne Feld Füllung absenden. Das heisst, ich würde gerne eine Fehlermeldung bringen, wenn die Felder leer sind, die mit einem * gekennzeichnet sind.

    Hinzu kommt, dass bei diesem Forumlar, beim schliessen des aktuellen Festers (X oben rechts) eine weitere Email hinterherschickt. Woher kommt dieser Fehler?

    So ich poste am besten mal das Forumlar:

    PHP-Code:


    <?php
    $nachricht 
    "<b>Formular<b>
    <br>
    Vorname: 
    $_POST[vorname]
    <br>
    Name: 
    $_POST[name]
    <br>
    Strasse: 
    $_POST[strasse]
    <br>
    Plz: 
    $_POST[plz]
    <br>
    Telefon: 
    $_POST[tel]
    <br>
    eMail-Adresse: 
    $_POST[mail]
    <br>
    Ich plane: 
    $_POST[select]
    <br>
    Nachricht: 
    $_POST[txt]
    "
    ;

    $an "email@mail.de";
    $betreff "Infomail";
    $xtra "From: [email]email@mail.de[/email]\r\n";
    $xtra .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
    $xtra .= "X-Mailer: PHP "phpversion();

    mail($an$betreff$nachricht$xtra);
    ?>

    <html>

        <head>
            <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
            <meta name="generator" content="Adobe GoLive 5">
            <title>Startseite</title>
        </head>

        <body bgcolor="#8d8d8d">
            <div align="center">
                <form name="FormName" action="formular.php" method="post">
                <table cool width="450" height="522" gridx="16" gridy="16" border="0" cellpadding="0" cellspacing="0" 
                bgcolor="white" align="left">
                    <tr height="128">
                        <td width="450" height="128" colspan="6" valign="top" align="left" xpos="0">
                            <table border="0" cellpadding="0" cellspacing="0" width="451" bgcolor="#d8d9d9">
                                <tr height="95%" bgcolor="#d8d9d9">
                                    <td height="95%" width="83"><img src="./images/logo.gif" width="83" height="83" 
                                    border="0" hspace="10" vspace="10"></td>
                                    <td height="95%" width="83"><img src="./images/name.gif" width="297" height="66" 
                                    border="0" hspace="10"></td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                    <tr height="1">
                        <td width="16" height="393" rowspan="11"><spacer type="block" width="16" height="393"></td>
                        <td width="119" height="1"><spacer type="block" width="119" height="1"></td>
                        <td width="314" height="32" colspan="3" rowspan="2" valign="top" align="left" xpos="135"><input 
                        type="text" name="vorname" size="40"></td>
                        <td width="1" height="1"><spacer type="block" width="1" height="1"></td>
                    </tr>
                    <tr height="31">
                        <td width="119" height="31" valign="top" align="left" xpos="16"><label><font size="2" face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666"> </font><font size="2" face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular"> Vorname:</font></label></td>
                        <td width="1" height="31"><spacer type="block" width="1" height="31"></td>
                    </tr>
                    <tr height="32">
                        <td width="119" height="32" valign="top" align="left" xpos="16"><label><font size="2" face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666">*</font><font size="2" face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular"> Name:</font></label></td>
                        <td width="314" height="32" colspan="3" valign="top" align="left" xpos="135"><input type="text" 
                        name="name" size="40"></td>
                        <td width="1" height="32"><spacer type="block" width="1" height="32"></td>
                    </tr>
                    <tr height="32">
                        <td width="119" height="32" valign="top" align="left" xpos="16"><label><font size="2" face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666"> </font><font size="2" face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular"> Stra&szlig;e/Hausnr.:</font></label></td>
                        <td width="314" height="32" colspan="3" valign="top" align="left" xpos="135"><input type="text" 
                        name="strasse" size="40"></td>
                        <td width="1" height="32"><spacer type="block" width="1" height="32"></td>
                    </tr>
                    <tr height="32">
                        <td width="119" height="32" valign="top" align="left" xpos="16"><label><font size="2" face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666"> </font><font size="2" face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular"> PLZ/Ort:</font></label></td>
                        <td width="314" height="32" colspan="3" valign="top" align="left" xpos="135"><input type="text" 
                        name="plz" size="40"></td>
                        <td width="1" height="32"><spacer type="block" width="1" height="32"></td>
                    </tr>
                    <tr height="32">
                        <td width="119" height="32" valign="top" align="left" xpos="16"><label><font size="2" face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666">*</font><font size="2" face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular"> Telefon:</font></label></td>
                        <td width="314" height="32" colspan="3" valign="top" align="left" xpos="135"><input type="text" 
                        name="tel" size="40"></td>
                        <td width="1" height="32"><spacer type="block" width="1" height="32"></td>
                    </tr>
                    <tr height="32">
                        <td width="119" height="32" valign="top" align="left" xpos="16"><label><font size="2" face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666">*</font><font size="2" face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular"> eMail-Adresse:</font></label></td>
                        <td width="314" height="32" colspan="3" valign="top" align="left" xpos="135"><input type="text" 
                        name="mail" size="40"></td>
                        <td width="1" height="32"><spacer type="block" width="1" height="32"></td>
                    </tr>
                    <tr height="32">
                        <td width="284" height="32" colspan="3" valign="top" align="left" xpos="16"><label><font face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" color="#006666" size="1">* Bitte diese Felder unbedingt 
                        ausf&uuml;llen:</font></label></td>
                        <td width="149" height="32"><spacer type="block" width="149" height="32"></td>
                        <td width="1" height="32"><spacer type="block" width="1" height="32"></td>
                    </tr>
                    <tr height="27">
                        <td width="119" height="27" valign="top" align="left" xpos="16"><label><font face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular" size="2">Ich plane:</font></label></td>
                        <td width="57" height="27"><spacer type="block" width="57" height="27"></td>
                        <td width="257" height="27" colspan="2" valign="top" align="left" xpos="192"><label><font face="Arial,
                        Helvetica,Geneva,Swiss,SunSans-Regular" size="2">Ihre Nachricht an uns</font><font face="Arial,Helvetica,
                        Geneva,Swiss,SunSans-Regular" size="2">:</font></label></td>
                        <td width="1" height="27"><spacer type="block" width="1" height="27"></td>
                    </tr>
                    <tr height="121">
                        <td width="176" height="121" colspan="2" valign="top" align="left" xpos="16"><select name="select" 
                        size="8" multiple>
                                <option value="Auswahl1">Auswahl1</option>
                                <option value="Auswahl2">Auswahl2</option>
                                </select></td>
                        <td width="257" height="121" colspan="2" valign="top" align="left" xpos="192"><textarea name="txt" 
                        cols="30" rows="6" wrap="physical"></textarea></td>
                        <td width="1" height="121"><spacer type="block" width="1" height="121"></td>
                    </tr>
                    <tr height="21">
                        <td width="176" height="21" colspan="2"><spacer type="block" width="176" height="21"></td>
                        <td width="108" height="21" valign="top" align="left" xpos="192"><input type="reset" value="Löschen"></td>
                        <td width="149" height="21" valign="top" align="left" xpos="300"><input type="submit" name="Send" 
                        value="Absenden"></td>
                        <td width="1" height="21"><spacer type="block" width="1" height="21"></td>
                    </tr>
                    <tr height="1" cntrlrow>
                        <td width="16" height="1"><spacer type="block" width="16" height="1"></td>
                        <td width="119" height="1"><spacer type="block" width="119" height="1"></td>
                        <td width="57" height="1"><spacer type="block" width="57" height="1"></td>
                        <td width="108" height="1"><spacer type="block" width="108" height="1"></td>
                        <td width="149" height="1"><spacer type="block" width="149" height="1"></td>
                        <td width="1" height="1"><spacer type="block" width="1" height="1"></td>
                    </tr>
                </table>
                </form>
            </div>
            <p></p>
        </body>

    </html>
    Wäre euch so dankbar wenn ihr mir helfen könntet. Habe schon in zig Foren gesucht, doch leider nur die einzelnen Strings gefunden, wusste aber nicht, wo ich diese einbinden kann. Vorallem das Problem, dass beim schliessen des Forumlars, dann nochmal eine leere Mail hinterher kommt. Woher kommt das?

    Gruß
    Boglius
    Zuletzt geändert von Boglius; 21.04.2008, 00:04.

  • #2
    Dieses Script ballert bei jedem Request eine Mail raus. Beim ersten Aufruf der Seite, beim Abschicken das Formulars, beim Neuladen der Seite, einfach immer!

    Weißt du was ein if() ist?

    Und mach dich bitte mit den Forenregeln vertraut. Für PHP und sonstigen Code gibt es hier Tags, die das ganze schön bunt oder zumindest lesbarer machen. Umbrechen musst du dann aber selbst. Danke.

    Kommentar


    • #3
      und wenn du den php-teil fertig hast,
      solltest du dich dringenst mit css beschäftigen.
      dein html sieht grausam aus

      Kommentar


      • #4
        Hallo,

        ich habe nach dem ersten Post nochmal bearbeitet und PHP Code angeschaltet, damit es zumindestens etwas farblich wird. Sorry wenn ich darin nicht so fit bin. Wo genau liegt denn der Fehler, dass soviele Formulare abgesendet werden?

        Wäre wirklich dankbar, wenn mir jemand helfen könnte. Ich muss Bekannten helfen, dass gerade zu biegen, ich komme aber aus einem ganz anderen Bereich.

        Gruss

        Weißt du was ein if() ist?
        Nein leider nicht

        Kommentar


        • #5
          Original geschrieben von 3DMax
          und wenn du den php-teil fertig hast,
          solltest du dich dringenst mit css beschäftigen.
          dein html sieht grausam aus
          Hm was spricht denn gegen den Code?

          Kommentar


          • #6
            Hallo!

            Brich bite als erstes deinen Code um,das tuen sich hier berechtigt nicht viele an sonst wie weit nach rechts zu scrollen!

            Zu deinen eigentlichen Problem. Wie schon mal geschrieben schon wenn ich die Seite aufrufe knallt es die Mail raus und bei jedem Neuaufruf oder Aktualisierung genauso!

            Wie wäre es wenn du ein!

            PHP-Code:
            <?php
            if(isset($_POST['Send']))
            {
                   
            //Hier dein ganzer PHP Kram für das absenden rein
            }
            ?>
            Son sendet es das Formular erst raus wenn der Submit Button im Formular gedrückt wurde!

            Desweiteren solltest du auch prüfen ob Felder ausgefüllt sind!
            Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
            http://www.lit-web.de

            Kommentar


            • #7
              Original geschrieben von Boglius
              Nein leider nicht
              Dann sollten sich deine Bekannten nach einem anderen Helfer umsehen. Es würde ziemlich lange dauern, bis du die Grundlagen beherrschst. Alles was du vorher produzierst, ist eher eine Gefahr als eine Hilfe.

              Kommentar


              • #8
                Original geschrieben von Boglius
                Hm was spricht denn gegen den Code?
                die redundanz und die menge an quellcode.

                und hier im forum besonders die überbreite, die
                du aber sicherlich gleich beheben wirst.

                Kommentar


                • #9
                  Desweiteren,was willst du damit machen?
                  Das kann so meines erachtens nach nicht funktionieren!

                  PHP-Code:
                  <?php
                  $nachricht 
                  "<b>Formular<b>
                  <br>
                  Vorname: 
                  $_POST[vorname]
                  <br>
                  Name: 
                  $_POST[name]
                  <br>
                  Strasse: 
                  $_POST[strasse]
                  <br>
                  Plz: 
                  $_POST[plz]
                  <br>
                  Telefon: 
                  $_POST[tel]
                  <br>
                  eMail-Adresse: 
                  $_POST[mail]
                  <br>
                  Ich plane: 
                  $_POST[select]
                  <br>
                  Nachricht: 
                  $_POST[txt]
                  "
                  ;

                  //so ist besser

                  $nachricht ="

                  Vorname: "
                  .$_POST['Vorname']."
                  "
                  ;
                  ?>
                  Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                  http://www.lit-web.de

                  Kommentar


                  • #10
                    Original geschrieben von litterauspirna
                    Hallo!

                    Brich bite als erstes deinen Code um,das tuen sich hier berechtigt nicht viele an sonst wie weit nach rechts zu scrollen!

                    Zu deinen eigentlichen Problem. Wie schon mal geschrieben schon wenn ich die Seite aufrufe knallt es die Mail raus und bei jedem Neuaufruf oder Aktualisierung genauso!

                    Wie wäre es wenn du ein!

                    PHP-Code:
                    <?php
                    if(isset($_POST['Send']))
                    {
                           
                    //Hier dein ganzer PHP Kram für das absenden rein
                    }
                    ?>
                    Son sendet es das Formular erst raus wenn der Submit Button im Formular gedrückt wurde!

                    Desweiteren solltest du auch prüfen ob Felder ausgefüllt sind!
                    So nun sind Umbrüche drin und es passt ohne zu scrollen.

                    Also das Skript schickte bislang nur beim "Absenden" und beim "Schliessen" eine Mail raus.

                    Kann ich Deine genannten Zeilen direkt oben reinmachen und danach dann die Bindungen zu den einzelnen Feldern?

                    Die Prüfung auf ausgefüllte Felder habe ich ja oben im Text erwähnt, dass würde ich gerne einbauen. Weiss aber nicht wie. Habe nach PHP und Pflichtfelder Formular gegoogelt, doch das was da stand, funktionierte nicht bei mir.


                    Original geschrieben von onemorenerd
                    Dann sollten sich deine Bekannten nach einem anderen Helfer umsehen. Es würde ziemlich lange dauern, bis du die Grundlagen beherrschst. Alles was du vorher produzierst, ist eher eine Gefahr als eine Hilfe.
                    Wieso denn eine Gefahr? Die brauchen ihr Formular und es ging die ganze Zeit nicht. Dann habe ich es von ASP in PHP übernommen und dann funktionierte wenigstens das Senden. Leider halt immer in doppelter Ausführung.


                    Original geschrieben von litterauspirna
                    Desweiteren,was willst du damit machen?
                    Das kann so meines erachtens nach nicht funktionieren!

                    PHP-Code:
                    <?php
                    $nachricht 
                    "<b>Formular<b>
                    <br>
                    Vorname: 
                    $_POST[vorname]
                    <br>
                    Name: 
                    $_POST[name]
                    <br>
                    Strasse: 
                    $_POST[strasse]
                    <br>
                    Plz: 
                    $_POST[plz]
                    <br>
                    Telefon: 
                    $_POST[tel]
                    <br>
                    eMail-Adresse: 
                    $_POST[mail]
                    <br>
                    Ich plane: 
                    $_POST[select]
                    <br>
                    Nachricht: 
                    $_POST[txt]
                    "
                    ;

                    //so ist besser

                    $nachricht ="

                    Vorname: "
                    .$_POST['Vorname']."
                    "
                    ;
                    ?>
                    Hm? Doch es funktioniert. Aber halt nicht so wie es soll. Die Felder sind ausfüllbar, das geht alles soweit. Da ist noch ein HTML Formular dahinter.
                    Zuletzt geändert von Boglius; 21.04.2008, 00:11.

                    Kommentar


                    • #11
                      So nun sind Umbrüche drin und es passt ohne zu scrollen.
                      Bei 1600x1200 vielleicht Bitte nochmal umbrechen!

                      Kommentar


                      • #12
                        Ich bin gerade nur kurz online und muss auf die Arbeit. Ich breche es heute Abend nochmal um. Wobei es selbst bei niedriegen Auflösungen doch zu sehen sein müsste. Der Text endet bei mir etwas weiter rechts als in der Mitte des Bildschirms.

                        Wäre dennoch froh, wenn ihr mir dennoch helfen könntet.

                        Kommentar


                        • #13
                          OffTopic:

                          ich sehe Font Ich sehe Font ! *ahh*



                          www.beetlebum.de

                          Bitte Beachten.
                          Foren-Regeln
                          Danke

                          Kommentar


                          • #14
                            Ich denke mal eher, dass beim ersten Aufruf Deines Formulars eine leere Mail ankommt, nicht beim schliessen...
                            Denn ganz oben in Deinem Script schickst Du eine mail, ohne zu prüfen, ob das Formular ankam...
                            Die mail wird auch nicht leer sein sondern Den Text ohne Eingabedaten enthalten...
                            Beantworte nie Threads mit mehr als 15 followups...
                            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                            Kommentar


                            • #15
                              Ich habe es mal getestet. Beim Öffnen kommt keine. Erst beim klicken von Senden. Und wie gesagt beim schliessen der Seite. Mit leerer Mail meinte ich eine, ohne Eingaben.

                              An welcher Stelle muss ich denn was reinmachen, damit diese doppelte Mail denn nicht mehr kommt?

                              Viele hier machen sich darüber lustig, aber wenn man nicht aus der Programmierung kommt, ist es nicht leicht, in den Zeilen irgendwas zu verstehen. Klar kann man sich reinlesen, werde ich auch tun, aber hier geht es mir doch um ein dringendes Problem. Könnt ihr dann nicht einfach mal ein Auge zudrücken und sagen., wo ich was reinschreiben muss. Hatte bis vor ein paar Wochen die Dokumente noch mit dem Windows Editor editiert. Mittlerweile Ultraedit. Ich kann mir nur denken, welche Farben welche Befehle zeigen, doch richtig weiss ich es nicht. Das sind bömische Dörfer für mich.

                              Kommentar

                              Lädt...
                              X