Hallo,
ich habe mir ein php Formularscript zusammengestellt, und es funktioniert auch gut, aber ich hätte da noch 2 kleine Fragen.
Wie ich in diesem Thread gelesen habe, kann man den reload per header unterbinden. klick
Leider habe ich es bei meinem Script nicht ganz hinbekommen und man kann es trotzdem mehrmals senden.
Die 2te Frage ist, wie kann ich die Zeit überprüfen, wie lange man für das ausfüllen gebraucht hat, um Spambots herrauszufiltern?
Ich bedanke mich für eure Hilfe schonmal im Vorraus.
Hier mein Code:
Mit freundlichen Grüßen
Jan
ich habe mir ein php Formularscript zusammengestellt, und es funktioniert auch gut, aber ich hätte da noch 2 kleine Fragen.
Wie ich in diesem Thread gelesen habe, kann man den reload per header unterbinden. klick
Leider habe ich es bei meinem Script nicht ganz hinbekommen und man kann es trotzdem mehrmals senden.
Die 2te Frage ist, wie kann ich die Zeit überprüfen, wie lange man für das ausfüllen gebraucht hat, um Spambots herrauszufiltern?
Ich bedanke mich für eure Hilfe schonmal im Vorraus.
Hier mein Code:
PHP-Code:
if (isset($_POST["sendung"])) {
if (strlen($nachname) <= 2) {$eingabefehler .= "# Der Nachname fehlt!<br>";}
if (strlen($telefonnummer) >= 1 ) {$eingabefehler .= "# Geben Sie bitte hier <b>nichts</b> ein!<br>";}
if (!preg_match("|^[_a-za-z0-9-]+(.[_a-za-z0-9-]+)*@([a-z0-9-]{3,})+.([a-za-z]{2,4})$|i", $mailfrom)) {$eingabefehler .= "# Fehler in der E-Mail-Adresse!<br>";}
if (strlen($betreff) <= 4) {$eingabefehler .= "# Der Betreff " . ((strlen($betreff) == 0) ? " fehlt" : " ist zu kurz") . " (min. 5 Zeichen)!<br>";}
if (strlen($textfeld) <= 19) {$eingabefehler .= "# Die Nachricht " . ((strlen($textfeld) == 0) ? " fehlt" : " ist zu kurz") . " (min. 20 Zeichen)!<br>";}
if ($eingabefehler == "") {
$text = "Nachricht vom: " . date("d.m.y H:i") . "\r\nAnrede: $anrede \r\nVorname: $vorname \r\nNachname: $nachname \r\nE-Mail: $mailfrom \r\nBetreff: $betreff \r\n\r\nNachricht: $textfeld \r\n\r\n";
@mail($mailto, $betreff, $text, "From: " . $mailfrom);
echo "Die Daten wurden gesendet.<br>";
if (isset($_POST["kopie"])) {
$kopie = "\r\nKopie Ihrer Nachricht auf $url.\r\nWir haben folgende Nachricht erhalten:\r\n\r\n=== Beginn Nachricht ===\r\n\r\n$text \r\n=== Ende Nachricht ===";
@mail($mailfrom, "Kopie einer Anfrage", $kopie, "From: " . $mailto);
echo "Sie erhalten eine Kopie Ihrer Anfrage an Ihr Postfach.<br>";
}
echo "Vielen Dank - <a href=\"$url\">Weiter zur Startseite</a></p>";
}
else {
echo str_replace("<!-- Fehleranzeige -->", "<strong>Bitte korrigieren:</strong><br>$eingabefehler", $formular);
}
}
else {
echo $formular;
}
Jan
Kommentar