Ankündigung

Einklappen
Keine Ankündigung bisher.

kontaktformular sendet obwohl fehlerausgabe

Einklappen

Neue Werbung 2019

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

  • kontaktformular sendet obwohl fehlerausgabe

    hi.

    ich hab ein problem mit meinem kontaktformular und zwar folgendes:

    ich habe mein kontaktform. mit pflichtfeldern versehn, das script checkt das auch, nur wenn es feststellt, das nicht alle felder ausgefüllt sind sendet es trotzdem??

    warum??

    hier ist mal der code

    Code:
    <?php
    // Php by pixelmatic.de.vu
    $to="admin@commagent.de";
    $subject="Eine  Eiswürfelbestellung ist eingegangen";
    $gesammt="Bestellung für Eiswürfel [5kg], Anzahl:  " . $bestell1 . "\n" . "Bestellung für Eiswürfel [10kg], Anzahl: " . $bestell2 . "\n" . "Bestellung für Scherbeneis [5kg], Anzahl: " . $bestell3 . "\n" . "Bestellung für Scherbeneis [10kg], Anzahl: " . $bestell4 . "\n" . "Selbstabholer1:  " . $selbstabholer1 . "\n" . "Liefer / Abholdatum: " . $abholdatum . "\n" . "Liefer / Abholzeit: " . $abholzeit . "\n" .  "Name:  " . $liefername . "\n" . "Firma:  " . $firmenname . "\n" . "Strasse:  " . $lieferstrasse . "\n" . "PLZ / Ort:  " . $ort . "\n" . "Telefon:  " . $phone . "\n" . "Emailadresse:  " . $email . "\n" . 
    "Das Erhalten der Bestellungdaten wurde per E-Mail bestätigt !";
    
    if ($selbstabholer1 == ""){ echo "<font color='#FF0000'>Sie haben vergessen anzugeben ob Sie  Selbstabholer  sind</font>
    ";}
    if ($abholdatum == ""){ echo "<font color='#FF0000'>Sie haben nicht angegeben wann Sie das Eis abholen möchten!</font>
    ";}
    if ($abholzeit == ""){ echo "<font color='#FF0000'>Sie haben vergessen eine Abholuhrzeit anzugeben!</font>
    ";}
    if ($liefername == ""){ echo "<font color='#FF0000'>Sie haben keinen  Namen eingegeben.</font>
    ";}
    if ($lieferstrasse == ""){ echo "<font color='#FF0000'>Sie haben keine Straße  angegeben.</font>
    ";}
    if ($ort == ""){ echo "<font color='#FF0000'>Sie haben keinen  Ort  eingegeben.</font>
    ";}
    if ($phone == ""){ echo "<font color='#FF0000'>Sie haben keine  Telefonnr. eingegeben.</font>
    ";}
    if ($email == "")
            {
            echo "<font color='#ff0000'>Bitte Email eintragen !</font>
    ";
            }
            else if(!ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,3})$", $email))
            {
            echo "<font color='#ff0000'>Email hat das falsche Format!</font>
    ";
            }
    
    else if($selbstabholer1 && $abholdatum && $abholzeit && $liefername && $lieferstrasse && $ort && $phone && $email) { echo"Daten ok!"; mail();}
    
    
    
    if ($send <>"")
       $res = mail ($to,$subject,$gesammt); 
    if ($email >"")
     	  mail ($email,"Bestätigung ihrer Anfrage","Ihre Anfrage wurde von uns erhalten!Wir werden uns umgehend mit Ihnen in Verbindung setzen \n\nVielen Dank\nIhr Eiswürfelteam");  
     	  if ($res)
       	echo "<a <h4 class=bestatigung align=center>
    Ihre Anfrage wurde erfolgreich abgeschickt ! Bitte nicht erneut klicken</h4>";
    	
    ?>
    vielen dank im vorraus!


  • #2
    2 fehler:

    1:
    Code:
    if ($selbstabholer1 == ""){ echo "<font color='#FF0000'>Sie haben vergessen anzugeben ob Sie  Selbstabholer  sind</font>
    ";}
    if ($abholdatum == ""){ echo "<font color='#FF0000'>Sie haben nicht angegeben wann Sie das Eis abholen möchten!</font>
    ";}
    if ($abholzeit == ""){ echo "<font color='#FF0000'>Sie haben vergessen eine Abholuhrzeit anzugeben!</font>
    ";}
    usw....
    er gibt dann zwar den text aus, fährt aber dann mit dem programm fort!
    EINE mögliche lösung: überall noch in der { } die; reinschreiben ... dann hört er allerdings nach dem ersten fehlenden eintrag auf

    2:
    Code:
    if($selbstabholer1 && $abholdatum && $abholzeit && $liefername && $lieferstrasse && $ort && $phone && $email) { echo"Daten ok!"; mail();}
    ...wenn WAS? du musst schon sagen auf was er die variablen überprüfen soll. lösung die du wahrscheinlich brauchst:
    Code:
    else if (isset($selbstabholerl) && isset($blablabla) && usw...) }

    Kommentar


    • #3
      Also ich würde das so machen. Du definierst eine Variable $fehler gleich 0. Wenn etwas nicht stimmt, also wenn du die Fehlermeldung ausgeben willst, dann erhöhst du mit $fehler++; diese Variable einfach um eins. Beim Verschicken prüfst du dann ob $fehler gleich 0 ist, und wenn das zutrifft, schickst du die Mail ab.
      mfg RudiS

      Kommentar


      • #4
        hallo.

        vielen dank für eure antworten, aber ich blick da nicht so ganz durch.

        hier ist nochmal mein code. soweit hab ich das jetzt.
        Code:
        <?php
        // Php by pixelmatic.de.vu
        $to="admin@commagent.de";
        $subject="Eine  Eiswürfelbestellung ist eingegangen";
        $gesammt="Bestellung für Eiswürfel [5kg], Anzahl:  " . $bestell1 . "\n" . "Bestellung für Eiswürfel [10kg], Anzahl: " . $bestell2 . "\n" . "Bestellung für Scherbeneis [5kg], Anzahl: " . $bestell3 . "\n" . "Bestellung für Scherbeneis [10kg], Anzahl: " . $bestell4 . "\n" . "Selbstabholer1:  " . $selbstabholer1 . "\n" . "Liefer / Abholdatum: " . $abholdatum . "\n" . "Liefer / Abholzeit: " . $abholzeit . "\n" .  "Name:  " . $liefername . "\n" . "Firma:  " . $firmenname . "\n" . "Strasse:  " . $lieferstrasse . "\n" . "PLZ / Ort:  " . $ort . "\n" . "Telefon:  " . $phone . "\n" . "Emailadresse:  " . $email . "\n" . 
        "Das Erhalten der Bestellungdaten wurde per E-Mail bestätigt !";
        
        if ($selbstabholer1 == ""){ echo "<font color='#FF0000'>Sie haben vergessen anzugeben ob Sie  Selbstabholer  sind</font>
         {die}" ;} 
        if ($abholdatum == ""){ echo "<font color='#FF0000'>Sie haben nicht angegeben wann Sie das Eis abholen möchten!</font>
         {die}" ;}
        if ($abholzeit == ""){ echo "<font color='#FF0000'>Sie haben vergessen eine Abholuhrzeit anzugeben!</font>
        {die}";}
        if ($liefername == ""){ echo "<font color='#FF0000'>Sie haben keinen  Namen eingegeben.</font>
        {die}";}
        if ($lieferstrasse == ""){ echo "<font color='#FF0000'>Sie haben keine Straße  angegeben.</font>
        {die}";}
        if ($ort == ""){ echo "<font color='#FF0000'>Sie haben keinen  Ort  eingegeben.</font>
        {die}";}
        if ($phone == ""){ echo "<font color='#FF0000'>Sie haben keine  Telefonnr. eingegeben.</font>
        {die}";}
        if ($email == "")
                {
                echo "<font color='#ff0000'>Bitte Email eintragen !</font>
        ";
                }
                else if(!ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,3})$", $email))
                {
                echo "<font color='#ff0000'>Email hat das falsche Format!</font>
        ";
                }
        
        else if (isset($selbstabholerl) && isset($abholdatum) && isset($abholzeit) && isset($liefername) && isset($lieferstrasse) && isset($ort) && isset($phone) && isset($email)  )  
        
        exit();
        
        if ($send <>"")
           $res = mail ($to,$subject,$gesammt); 
        if ($email >"")
         	  mail ($email,"Bestätigung ihrer Anfrage","Ihre Anfrage wurde von uns erhalten!Wir werden uns umgehend mit Ihnen in Verbindung setzen \n\nVielen Dank\nIhr Eiswürfelteam");  
         	  if ($res)
           	echo "<a <h4 class=bestatigung align=center>
        Ihre Anfrage wurde erfolgreich abgeschickt ! Bitte nicht erneut klicken</h4>";
        	
        ?>

        wieder ist es so, das er überprüft ob alle felder ausgefüllt sind, aber er sendet trotzdem weiter???

        muss ich nicht irgendwo sagen, das er abbrechen muss.???

        tame

        Kommentar


        • #5
          Also ich habe den Code jetzt mal ein bischen abgeändert. Er müsste eigentlich funktionieren:
          Code:
          <?php
            error_reporting(E_ALL); // gibt alle Fehler aus
            // Php by pixelmatic.de.vu
          
            $fehler = 0; // Variable für die Fehleranzahl
          
            if (empty($selbstabholer1))
             {
              echo "<font color='#ff0000'>Sie haben vergessen anzugeben ob Sie  Selbstabholer  sind</font>
          ";
              $fehler++;
             }
            if (empty($abholdatum))
             {
              echo "<font color='#f0000'>Sie haben nicht angegeben wann Sie das Eis abholen möchten!</font>
          ";
              $fehler++;
             }
            if (empty($abholzeit))
             {
              echo "<font color='#FF0000'>Sie haben vergessen eine Abholuhrzeit anzugeben!</font>
          ";
              $fehler++;
             }
            if (empty($liefername))
             {
              echo "<font color='#FF0000'>Sie haben keinen  Namen eingegeben.</font>
          ";
              $fehler++;
             }
            if (empty($lieferstrasse))
             {
              echo "<font color='#FF0000'>Sie haben keine Straße  angegeben.</font>
          ";
              $fehler++;
             }
            if (empty($ort))
             {
              echo "<font color='#FF0000'>Sie haben keinen  Ort  eingegeben.</font>
          ";
              $fehler++;
             }
            if (empty($phone))
             {
              echo "<font color='#FF0000'>Sie haben keine  Telefonnr. eingegeben.</font>
          ";
              $fehler++;
             }
            if (empty($email))
             {
              echo "<font color='#ff0000'>Bitte Email eintragen !</font>
          ";
              $fehler++;
             }
             else if(!ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,3})$", $email))
             {
              echo "<font color='#ff0000'>Email hat das falsche Format!</font>
          ";
              $fehler++;
             }
          
            // wenn kein Fehler gefunden wurde, dann die Mail abschicken:
            if ($fehler == 0)
             {
              $to = "admin@commagent.de";
              $subject = "Eine Eiswürfelbestellung ist eingegangen";
              $gesammt = "Bestellung für Eiswürfel [5kg], Anzahl:  " . $bestell1 . "\n" . "Bestellung für Eiswürfel [10kg], Anzahl: " . $bestell2 . "\n" . "Bestellung für Scherbeneis [5kg], Anzahl: " . $bestell3 . "\n" . "Bestellung für Scherbeneis [10kg], Anzahl: " . $bestell4 . "\n" . "Selbstabholer1:  " . $selbstabholer1 . "\n" . "Liefer / Abholdatum: " . $abholdatum . "\n" . "Liefer / Abholzeit: " . $abholzeit . "\n" .  "Name:  " . $liefername . "\n" . "Firma:  " . $firmenname . "\n" . "Strasse:  " . $lieferstrasse . "\n" . "PLZ / Ort:  " . $ort . "\n" . "Telefon:  " . $phone . "\n" . "Emailadresse:  " . $email . "\n" . "Das Erhalten der Bestellungdaten wurde per E-Mail bestätigt !"; 
              $res = mail($to, $subject, $gesammt);
              mail ($email,"Bestätigung ihrer Anfrage","Ihre Anfrage wurde von uns erhalten!Wir werden uns umgehend mit Ihnen in Verbindung setzen \n\nVielen Dank\nIhr Eiswürfelteam");
              if ($res)
               {
                echo "<a <h4 class=bestatigung align=center>
          Ihre Anfrage wurde erfolgreich abgeschickt ! Bitte nicht erneut klicken</h4>"; 
               }
             }
           ?>
          Ich weis nicht ob die Variablen direkt aus einem Formular ausgelesen werden, aber wenn ja solltest du $_GET bzw. $_POST anstatt des Variablennamens benutzen.
          Also zum Beispiel:
          Code:
          $_POST['abholdatum']
          mfg RudiS

          Kommentar


          • #6
            danke!!!

            hoi!

            so ich hab den code mal umgeschrieben so wie du das gemeint hast, es funktioniert jetzt eigentlich auch so wie es soll.

            nur noch ein fehler hab ich auf der bestätigungseite:

            Notice: Undefined variable: subjcet in /opt/web6/html/ice/senden.php on line 59

            Ihre Anfrage wurde erfolgreich abgeschickt ! Bitte nicht erneut klicken



            und in der codezeile steht:

            Code:
             $res = mail($to, $subjcet, $gesammt);
            ich versteh aber nicht genau was das bedeutet??? scheint mir richtig zu sein!!!

            Kommentar


            • #7
              Sorry, ich hab mich vertippt. Ich habe $subjcet anstatt von $subject geschrieben. Musst du einfach umändern.
              mfg RudiS

              PS: Ich meinen Code von oben richtig gestellt.

              Kommentar


              • #8
                oleeeee

                vielen dank!

                das wars wirklich!!!

                es geht, olé


                cu
                tame

                Kommentar

                Lädt...
                X