+ Antworten
Ergebnis 1 bis 11 von 11

Thema: Kontaktformular, Emails kommen nicht an.

  1. #1
    TP-Member july3 macht alles soweit korrekt
    Registriert seit
    May 2008
    Beiträge
    39

    Kontaktformular, Emails kommen nicht an.

    Hallo zusammen,

    ich bin nun schon seit Stunden auf Fehlersuche in meinem PHP-Code und irgendwie komm ich einfach nicht weiter. Ich hatte ein Script geschrieben (schon länger her) und als ich es damals getetstet habe lief es ohne Probleme doch nun möchte ich es in eine Seite einbauen und auf einmal geht es nicht mehr. Zuerst kam immer das die Mail nicht gesendet werden kann habe dann bemerkt das ich unter (mail($to, $subject, $message, $from, $email)) das $email vergessen hatte, nun kommt keine Fehlermeldung mehr bzw. die Nachricht "wurde gesendet" jedoch kommt nirgendwo eine Mail an.

    Hier ein Blick in meine kontakt.php
    PHP-Code:
     <?php
                
    function mailCheck($email) {
                    return 
    preg_match("/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-.]+\.([a-zA-Z]{2,4})$/"$email);
                    }
                 
                
    $formok false;
                
    $namevalue "";
                
    $Nameok false;
                
    $emailok false;
                
    $Nachrichtok false;
                
    $homepageok false;
                
    $Auswahlok false;

                if(isset(
    $_POST["sendgbentry"])) {


                    if (!isset(
    $_POST["pampelmuse"]) or empty ($_POST["pampelmuse"]) ) {
                        
    $namevalue "";
                        
    $Nameerror $Nameerrormessage;
                    } else {
                        
    $namevalue $_POST["pampelmuse"];
                        
    $Nameerror "";
                        
    $Nameok true;
                    }
                    if (isset(
    $_POST["homepage"]) && $_POST["homepage"] ) {
                        
    $homepagevalue "";
                        
    $homepageok false;
                        
    $homepageerror $homepageerrormessage;
                        } else {
                        
    $homepagevalue "";
                        
    $homepageerror "";
                        
    $homepageok true;
                    }
                    if (!isset(
    $_POST["zitronensaft"]) or empty($_POST["zitronensaft"]) ) {
                        
    $emailvalue "";
                        
    $emailerror $emailemptyerrormessage;
                    } else {
                        
    $emailvalue trim($_POST["zitronensaft"]);
                        if (
    mailCheck($emailvalue)) {
                            
    $emailok true;
                            
    $emailerror "";
                        } else {
                            
    $emailerror $emailwrongformaterrormessage;
                        }
                    }

                    if (!isset(
    $_POST["apfelschorle"]) or empty($_POST["apfelschorle"]) ) {
                        
    $Nachrichtvalue "";
                        
    $Nachrichterror $Nachrichterrormessage;
                    } else {
                        
    $Nachrichtvalue $_POST["apfelschorle"];
                        
    $Nachrichterror "";
                        
    $Nachrichtok true;
                    }
                    if (!isset(
    $_POST["macaroni"]) or ($_POST["macaroni"] == "Bitte auswählen") ) {
                        
    $Auswahlvalue "";
                        
    $Auswahlerror $Auswahlerrormessage;
                        } else {
                        
    $Auswahlvalue $_POST["macaroni"];
                        
    $Auswahlerror "";
                        
    $Auswahlok true;
                    }
                    if (
    $Nameok AND $homepageok AND $emailok AND Nachrichtok AND $Auswahlok) {
                    
    $formok true;
                    }

                    
    //eingaben sind korrekt -> schreibe in DB und Erfolgsmeldung
                    
    if ($formok) {
                        
    $e htmlspecialchars($_POST["zitronensaft"], ENT_QUOTES);
                        
    $l htmlspecialchars($_POST["pampelmuse"], ENT_QUOTES);
                        
    $c htmlspecialchars($_POST["apfelschorle"], ENT_QUOTES);
                
    $h htmlspecialchars($_POST["homepage"], ENT_QUOTES);
                         
                        
    //Auswahlbox anfang
                        
    if ($_POST["macaroni"] == "Allgemein" OR $_POST["macaroni"] == "Support") {
                            
    $to 'mail1@xyz.de';

                        }
                        if (
    $_POST["macaroni"] == "Katalog" ) {
                            
    $to 'mail2@xxx.com';

                        }
                if (
    $_POST["macaroni"] == "Bestellung" ) {
                            
    $to 'mail3@zzz.de';

                        }

                        
    $subject $_POST["macaroni"];
                        
    $message "Name: " $_POST["pampelmuse"] . "\r\n" "E-Mail: " $_POST["zitronensaft"] . "\r\n" "Schrieb folgende Nachricht: " "\r\n" $_POST["apfelschorle"];
                        
    $from 'From:' $_POST["zitronensaft"];
                        
    $email $_POST["zitronensaft"];
                        
    //Auswahl ende


                        
    if (mail($to$subject$message$from$email)) {
                            echo 
    "<div id='gesendet'>Nachricht erfolgreich abgeschickt!</div>";
                        }
                        else {
                            echo 
    "<div id='nichtgesendet'>Es ist ein Fehler aufgetreten! Nachricht konnte nicht gesendet werden.</div>";
                        }
                    } else
                    {echo 
    "";}
                }
    Hoffe es kann mir jem. weiterhelfen. Bin nicht wirklich fit in PHP, seid also bitte nicht so streng mit mir

  2. #2
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Moin,
    hast du dir vor mail() schon mal den Inhalt der verwendeten Variablen anzeigen lassen?
    Bist du dir sicher, dass du den 5. Parameter bei mail brauchst und dieser auch richtig ist?
    http://www.php.net/manual/de/function.mail.php
    Gruss Guin
    Mein Blog

  3. #3
    TP-Member july3 macht alles soweit korrekt
    Registriert seit
    May 2008
    Beiträge
    39
    Hi Guin,

    nein habe mir nichts anzeigen lassen. Wegen dem $email bin ich mir unschlüssig denn eigentlich steht es ja schon $from drin, mir ist es eben nur beim Testen aufgefallen das wenn ich das $email weg habe direkt die Meldung kommt kann nicht gesendet werden, aber ich bekomme nicht angezeigt was für ein Fehler.

    Werde nochmal versuchen mir die einzelnen Variablen anzeigen zu lassen.

  4. #4
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Bitte auch in die Doku zu mail gucken. Dort steht geschrieben, wofür die einzelnen Parameter gut sind.
    Gruss Guin
    Mein Blog

  5. #5
    TP-Member july3 macht alles soweit korrekt
    Registriert seit
    May 2008
    Beiträge
    39
    Habe jetzt mal die Variablen überprüft und dazu ne vielleicht etwas blöde Frage.

    Bei der Variablen $to müsste doch wenn ich sie mir anzeigen lasse die emailaddresse stehen oder?
    In meinem Fall steht da aber immer der Text der in der Auswahlbox angezeigt wird. Also z.b. ich wähle "Allgemeine Anfrage" aus entspricht ja dann

    PHP-Code:
    if ($_POST["macaroni"] == "Allgemein" OR $_POST["macaroni"] == "Support") {
                            
    $to 'mail1@xyz.de';
                        } 
    aber wie gesagt wird "Allgemeine Anfrage" (aus dem Formular) NICHT "Allgemein" (die ID des Formularfeldes) angezeigt.

    Also vermute ich mal das darin der Fehler liegt, da ja mail1@xyz.de angezeigt werden müsste.

    Aber ich komm echt nicht weiter. Die Doku hab ich mir angeschaut verwirrt mich aber nur noch mehr.

  6. #6
    TP-Moderator Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.608
    Zitat Zitat von july3 Beitrag anzeigen
    aber wie gesagt wird "Allgemeine Anfrage" (aus dem Formular) NICHT "Allgemein" (die ID des Formularfeldes) angezeigt.

    Also vermute ich mal das darin der Fehler liegt, da ja mail1@xyz.de angezeigt werden müsste....
    Wie hast Du es Dir denn anzeigen lassen?
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  7. #7
    TP-Member july3 macht alles soweit korrekt
    Registriert seit
    May 2008
    Beiträge
    39
    Naja, halt mit echo $to;

  8. #8
    TP-Senior Moritz macht sich hier sehr viel Mühe
    Registriert seit
    Nov 2002
    Beiträge
    289
    Lass dir mal mit
    PHP-Code:
    var_dump($_POST); 
    deine übermittelten Formdaten anzeigen und vergleiche Sie mit deiner Prüfung.
    Das Problem scheint mir zu sein, dass die Prüfung den Wert nicht abdeckt, der da aus deinem Formular ankommt.
    Kannst Du den Quelltext des Feldes "macaroni" mal posten?
    ...zur Zeit außer Betrieb...

  9. #9
    TP-Member july3 macht alles soweit korrekt
    Registriert seit
    May 2008
    Beiträge
    39
    Also ich habe es jetzt mal überprüft, raus kam:
    PHP-Code:
    array(6) { ["pampelmuse"]=>  string(4"nkin" ["zitronensaft"]=>  string(10"nkin@web.de" ["macaroni"]=>  string(18"Allgemeine Anfrage" ["homepage"]=>  string(0"" ["apfelschorle"]=>  string(4"Hallo Test" ["sendgbentry"]=>  string(14"Eintrag senden" 
    Eigentlich müsste bei macaroni ja die Email Addy stehen oder nicht?

    Der Quelltext zum macaroni-Feld aus dem Formular:

    PHP-Code:
    <select name="macaroni" id="macaroni" class="writeEntry_dropdown">
    <option <?php if(empty($_POST["macaroni"])) echo 'selected' ?>Bitte auswählen</option>
    <option <?php if($_POST["macaroni"] == "Allgemein") echo 'selected' ?>>Allgemeine Anfrage</option>
    <option <?php if($_POST["macaroni"] == "Support") echo 'selected' ?>>Anfrage Support</option>
    <option <?php if($_POST["macaroni"] == "Bestellung") echo 'selected' ?>>Anfrage Bestellung</option>
    <option <?php if($_POST["macaroni"] == "Katalog") echo 'selected' ?>>Anfrage Katalog</option> </select>

  10. #10
    TP-Senior Moritz macht sich hier sehr viel Mühe
    Registriert seit
    Nov 2002
    Beiträge
    289
    Also so kann das ja nicht funktionieren: In deinem Code fragst Du auf "Allgemein" ab, schickst aber "Allgemeine Anfrage" an das Script.
    Setz mal in deinem HTML für die Optionen einen value:
    HTML-Code:
    <select name="macaroni" id="macaroni" class="writeEntry_dropdown">
    <option value=""<?php if(empty($_POST["macaroni"])) echo ' selected="selected"'; ?>Bitte auswählen</option>
    <option value="Allgemein"<?php if($_POST["macaroni"] == "Allgemein") echo ' selected="selected"'; ?>>Allgemeine Anfrage</option>
    <option value="Support"<?php if($_POST["macaroni"] == "Support") echo ' selected="selected"'; ?>>Anfrage Support</option>
    <option value="Bestellung"<?php if($_POST["macaroni"] == "Bestellung") echo ' selected="selected"'; ?>>Anfrage Bestellung</option>
    <option value="Katalog"<?php if($_POST["macaroni"] == "Katalog") echo ' selected="selected"'; ?>>Anfrage Katalog</option> </select>
    ...zur Zeit außer Betrieb...

  11. #11
    TP-Member july3 macht alles soweit korrekt
    Registriert seit
    May 2008
    Beiträge
    39
    Ach sooooo, nun versteh ich den Fehler. Jetzt klappt's wunderbar. Super. Vielen Dank für die Hilfe!!!

+ Antworten

Ähnliche Themen

  1. Besucher kaufen/kommen nicht !!
    Von Lif3styl3 im Forum Business allgemein
    Antworten: 16
    Letzter Beitrag: 18.03.2007, 14:39
  2. Outlook: Emails kommen doppelt an!?!
    Von Master_T2 im Forum Betriebssysteme
    Antworten: 1
    Letzter Beitrag: 17.01.2005, 21:16
  3. [PHP] Mails kommen nicht an
    Von chaosphinx im Forum Traum-Dynamik
    Antworten: 7
    Letzter Beitrag: 24.08.2004, 10:52
  4. Bilder kommen mal, mal nicht....
    Von oliveramberg im Forum Dreamweaver & andere Webeditoren
    Antworten: 10
    Letzter Beitrag: 05.02.2003, 14:04

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51