Hallo Klaus Peter!
Das was Du da versuchst ist nicht ungefährlich. Wenn Du eine Variable, die der Anwender beeinflussen kann direkt und ungefiltert in den E-Mail Header schreibst, kann Dein Skript zum Massenversand von Spam missbraucht werden.
Hier ist ein Artikel, der die Problematik erklärt: http://www.heise.de/security/artikel/66815
»» So hier mal ausschnitte aus dem script.
»» $email = $_POST['email'];
»» [...]
»» $weiterleiten = 'Reply-To: ' .$email;
»» [...]
»» mail($an,$betreff,$text,$from,$weiterleiten);
»» [...]
Das könnte für Spamversand missbraucht werden, wenn Du nicht glücklicherweise einen Fehler gemacht hättest ;-)
Du übergibst den Reply-To Header in $weiterleiten (wo $_POST['email'] ungefiltert enthalten ist, also erst Filter einbauen bevor Du das hochlädst!) als 5. Parameter an die Mail-Funktion. Guck Dir nochmal an wozu genau der 5. Parameter da ist, bzw. wo Header hingehören. Und wenn Du solche Header einsetzt, lese auf jeden Fall den oben verlinkten Artikel!
»» [...]
»» function eingaben_ueberpruefen(){
»» var mail = document.Formular.email.value;
»» [...]
Dir ist schon bewusst, dass diese Funktion nur aufgerufen werden kann, solange Javascript im Browser aktiviert ist, oder? Das kann zwar praktisch sein Formulareingaben noch vor dem Abschicken zu überprüfen, entbindet Dich aber nicht davon, serverseitig nochmal zu prüfen - vor allem dann, wenn Du die Variablen an externe Programme wie sendmail oder eine Datenbank übergibst.
»» ...
»» else if (mail.length < 5 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1){
Abgesehen davon, dass man mit Javascript sowieso nicht wirksam filtern kann - wenn Du diesen Filter auf PHP-überträgst, kann dadurch immer noch Spam versendet werden. Du musst schon exakter filtern, wenn Du vom Anwender beeinflussbare Daten als Header verwenden willst.
Grüße
Andreas