Einzelnen Beitrag anzeigen
  #1  
Alt 01.03.2010, 13:27:47
andreasa andreasa ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 58
Beiträge: 5
Mailscript funktioniert, aber sendet trotz Fehler

Hallo Zusammen,

ich hab mir einen Webmailer nachgebaut und erweitert, welcher zwar genau tut, was er soll, doch wenn ein Fehler auftritt sendet er trotzdem.
So kontrolliert dieses Script, ob Name, Vorname, E-Mail-Adresse und Kommentar eingegeben wurden. Ist dies nicht der Fall, so blockt es die Mail.
Wurde ein "hidden" Kontrollfeld ausgefüllt, so ist es Spam und wird geblockt.
Dies funktioniert so weit.

Wurde eine E-Mailadresse eingegeben, welche ohne @ oder . ist, so meckert es zwar, doch die E-Mail landet trotzdem in meinem Postfach.

Kann mir bitte jemand sagen, wie ich den umbauen muss, dass er dann nicht sendet, wenn die eingegebene Absender-E-Mailadresse nicht die benannten beiden Zeichen enthält.

Schon mal vielen Dank für Eure Hilfe

Liebe Grüße

andreas
PHP-Code:
<?php
$empfaenger
="xxx@xxxxxde";
$betreff="Webmailformular";
$botschaft="Folgendes wurde angegeben:\n\n";
/* Schleife liest Attribut-Werte-Paare aus: */
foreach($_POST as $name=> $value) {
      
/* Alle Daten werden in $botschaft gespeichert: */
      
$botschaft.="$name=$value\n";
}


/* Versenden! Bitte Mail-Feld im Formular vorsehen! */
if (isset($_POST["Mail"]) && $_POST["Mail"]!="" && $_POST["Kommentar"]!=""
// Mail-Feld gesetzt und nicht leer? und Kommentar nicht leer?
/* Dann wird Versenden-Funktion mail() aktiv */
/*Wenn das Ned-Feld Daten enthaelt ist es Spam und wird nicht verschickt*/
    
if (empty($_POST['Ned']))
    {

        
$affe="@";
        
$punkt=".";
        
$absender=$_POST["Mail"];
          
/*Kontrolle ob die E-MailAdresse ein @ und winwn . hat*/
              
$ist_affe strpos($absender$affe);
              
$ist_punkt strpos($absender$punkt);
        if((
$ist_affe === false) or ($ist_punkt === false)) {
              echo 
"<h1>Bitte pruefen Sie ihre E-Mail Adresse</h1>";
              echo 
"<p><a href='javascript:history.back()'>Zurueck</a></p>";
        }
        else {
                
$mailgut=1;
        }
        if((
mail($empfaenger$betreff$botschaft"From: $absender")) && ($mailgut==1))
        {
              
/* War mail() erfolgreich, dann: */
              
echo "<h1>Danke f&uuml;r die Nachricht!</h1>\n";
              echo 
"<p>Die Daten wurden weitergeleitet!</p>\n";
        }
        
/* Sonst gibt es eine Fehlermeldung: */
     
}
        else { 
              echo 
"<h1>Leider konnten Ihre eingegebenen Daten nicht versandt werden.</h1>\n";
        }
}
/* else-Zweig äußere if bei nicht gesetzter Variable $Mail: */
else {
              echo 
"<h1>Bitte geben Sie Ihre E-Mail-Adresse  und/oder einen Kommentar an!</h1>\n<a href='javascript:history.back()'>zur&uuml;ck</a>";
}
?>
a
Mit Zitat antworten