[PHP] Script schickt Emails nicht ab!

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Stegaa, 25. September 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. September 2009
    Script schickt Emails nicht ab!

    Habe ein kleines Kontaktformular gebastelt und nun soll mein Script die Emails an meine Emailadresse absenden,nur leider kommt immer diese Fehlermeldung: (Habe ich selbst so gecoded) Die Schleife wird also nicht korrekt durchlaufen,obwohl alle Werte eingetragen wurden:

    "Ihre Nachricht konnte nicht versandt werden, weil"

    Hier der Code:

    Zuerst die HTML Datei:
    HTML:
     <form action="auswertung.php" method="post">
     <table><tr>
     <td>Name</td>
     <td><input name="name" size="45" /></td>
     </tr>
     <tr>
     <td>Vorname</td>
     <td><input name="vorname" size="45" /></td>
     </tr>
     <tr>
     <td>Adresse</td>
     <td><input name="adresse" size="45" /></td>
     </tr>
     <tr>
     <td>Postleitzahl</td>
     <td><input name="plz" size="45" /></td>
     </tr>
     <tr>
     <td>Stadt</td>
     <td><input name="stadt" size="45" /></td>
     </tr>
     <tr>
     <td>Telefon</td>
     <td><input name="telefon" size="45" /></td>
     </tr>
     <tr>
     <td>Email</td>
     <td><input name="email" size="45" /></td>
     </tr>
     <tr>
     <td>Betreff</td>
     <td><input name="betreff" size="45" /></td>
     </tr>
     <tr>
     <td>Ihre Nachricht</td>
     <td><textarea cols="40" rows="10" name="nachricht"></textarea></td>
     </tr>
     </table>
     <br />
     <input type="submit" value="abschicken" />
     </form>
    
    

    PHP:
    <?
    $fehler = " " ;
    $nz  chr ( 13 ). chr ( 10 );

    $name  $_POST [ 'name' ];
    $vorname  $_POST [ 'vorname' ];
    $adresse  $_POST [ 'adresse' ];
    $postleitzahl  $_POST [ 'plz' ];
    $stadt  $_POST [ 'stadt' ];
    $telefon  $_POST [ 'telefon' ];
    $email  $_POST [ 'email' ];
    $betreff  $_POST [ 'betreff' ];
    $nachricht  $_POST [ 'nachricht' ];

    if (empty(
    $name ))  $fehler  .=  "<li>Sie haben Ihren Namen nicht angegeben!</li>" ;
    if (empty(
    $vorname ))  $fehler  .=  "<li>Sie haben Ihren Vornamen nicht angegeben!</li>" ;
    if (empty(
    $adresse ))  $fehler  .=  "<li>Bitte geben Sie Ihre Adresse an!</li>" ;
    if (empty(
    $postleitzahl ))  $fehler  .=  "<li>Sie haben Ihre Postleitzahl nicht angegeben!</li>" ;
    if (empty(
    $stadt ))  $fehler  .=  "<li>Sie haben Ihren Wohnort nicht angegeben!</li>" ;
    if (empty(
    $telefon ))  $fehler  .=  "<li>Sie haben keine Telefonnummer angegeben!</li>" ;
    if (empty(
    $email ))  $fehler  .=  "<li>Sie haben keine Emailadresse angegeben!</li>" ;
    if (empty(
    $betreff ))  $fehler  .=  "<li>Bitte geben Sie einen Betreff an!</li>" ;
    if (empty(
    $nachricht ))  $fehler  .=  "<li>Sie haben keine Nachricht hinterlassen!</li>" ;

    if (empty(
    $fehler )) {
    $an  = "stegaa@gmx.de" ;
    $betreff  "Sie haben eine Nachricht via Kontaktformular erhalten" ;
    $datum  "Datum: " . date ( "j.n.Y" ). $nz ;
    $zeit  "Zeit: " . date ( "H:i" ). $nz ;
    $von  "Von:  " . $name . " <" . $email . ">" . $nz ;
    $linie  = "-----------------------------------" . $nz ;
    $text  $datum . $zeit . $von . $linie . $nachricht ;
    $titel  "Ihre Nachricht wurde versand" ;
    mail ( $an , $betreff , $text );
        }
        else 
    $titel  "Es ist ein Fehler aufgetreten" ?>

    Und damit alles als HTML dargestellt wird, habe ich dann noch
    PHP:
       <?
        
    if (empty( $fehler )) {
            
    $text  strip_tags ( $text );
            
    $text  htmlentities ( $text );
            
    $text  str_replace ( $nz , "<br>" , $text );
            echo 
    "<p>Ihre Nachricht wurde erfolgreich abgeschickt.</p>" ;
            echo 
    "<p> $text </p>" ;
        } else {
            echo 
    "<p>Ihre Nachricht konnte nicht versandt werden, weil" ;
            echo 
    "<ul> $fehler </ul>" ;
            echo 
    "</p>" ;
            
            }
            
    ?>
     
  2. 25. September 2009
    AW: Script schickt Emails nicht ab!

    Ich vermute mal, da du $fehler auf " " setzt, ist es nicht leer (empty($fehler) liefert immer false.
    Also setz $fehler entweder auf null oder frag korrekt ab (if($fehler == " ")).
     
  3. 25. September 2009
    AW: Script schickt Emails nicht ab!

    $fehler=" ";

    if (empty($fehler)) {

    $fehler ist nicht empty

    vorschlage

    if (strlen($fehler) < 2) {

    // edit
    mist war zu langsam.
    oder so wie Hapablap vorschlägt
     
  4. 25. September 2009
    AW: Script schickt Emails nicht ab!

    Fehler wurde ja bereits angesprochen.

    Ich löse so etwas oft mit einem Array
    PHP:
    $fehler  = array();
    if (empty(
    $name ))  $fehler [] =  "Sie haben keinen Namen angegeben" ;
    //...
    if ( count ( $fehler )> 0 )
    {
      print 
    "Es gab folgende" .(( count ( $fehler )== 1 )?( "n" ):( "" )). " Fehler:<br />\n" ;
      foreach (
    $fehler  as  $value ) print  "<li>" . $value . "</li>\n" ;
    }
     
  5. 25. September 2009
    AW: Script schickt Emails nicht ab!

    Perfomanter und eleganter wäre dann aber die Fehlerausgabe nicht mit einer Schleife, sondern per implode() PHP: implode - Manual
     
  6. 25. September 2009
    AW: Script schickt Emails nicht ab!

    Sry Antwort war falsch, verwende das oben genannte ^^
     
  7. 27. September 2009
    AW: Script schickt Emails nicht ab!

    Danke Männers, es funktioniert nun ! Hammer!
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.