ich mit wirklicher Freude zu der Seite gestossen, weil unsere Seite von Spam bombadiert wird. Leider habe ich nur geringe PHP Kenntnisse. Also von vorne:
Es handelt sich um das Formular auf: http://www.cetlalic.org/anmeldeformular.html
Ich habe eine rechen-captcha.php Daeti erstellt und in den gleichen Ordner gespeichert. Auch habe ich die im Formular selbst die Tabelle reinkopiert und die Rechenaufgabe wird auch angezeigt. Das klappt also!!!
In die PHP Datei, welche den Formularinhalt an meine E-Mail Adresse schickt habe ich den "Einbau ins Script" so vorgenommen:
- Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTNL 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title></title>
<link href="css/layout.css"
rel="stylesheet" type="text/css">
</head>
<div id="mother">
<div id="header"></div>
<div id="menu"></div>
<div id="main">
<?php
session_start();
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
/* Unimailer Version 5, (c) JCHANKE.de */
/* DIE NÄCHSTEN WERTE DARFST DU EDITIEREN */
$empfaenger = "xxxx@xxxx.de";
$betreff = "CETLALIC-Anmeldung";
$mailbody = "Folgende Daten wurden eingegeben:\n\n";
/* EDITIEREN ENDE */
/* foreach liest Attribut-Werte-Paare aus: */
foreach($_POST as $name => $value) {
/* Formular-Daten werden in $mailbody gespeichert: */
$mailbody .= "$name = $value\n"; // Kurzform für Verkettung
$mailbody = stripslashes($mailbody);
}
$muster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
/* Versenden! Mail-Feld im Formular vorsehen! */
// Ist das Email-Feld nicht leer und gültig?
if (!empty($_POST['Mail']) && preg_match($muster, $_POST['Mail']) > 0) {
/* Dann wird Versenden-Funktion mail() aktiv */
$absender = $_POST['Mail'];
if (@mail($empfaenger, $betreff, $mailbody, "From: $absender")) {
/* War mail() erfolgreich? Dann sieht Benutzer folgende Zeilen */
echo "<h3>Vielen Dank für Ihre Anmeldung für einen Sprachkurs bei CETLALIC!</h3>\n";
echo "<p>Wir werden Ihnen innerhalb von 48 Stunden eine Anmeldebestätigung an Ihre angegebene E-Mail Adresse zusenden.</p>\n";
echo "<p>Falls Sie vorab Fragen haben sollten, schreiben Sie uns an office@cetlalic.org!</p>\n";
echo "<p>Ihr CETLALIC Deutschland Team</p>\n";
}
/* Sonst gibt es eine Fehlermeldung: */
else {
echo "<h3>Leider konnte die Botschaft nicht verschickt werden.</h3>\n";
}
} // äußere if-Funktion schließen
/* else-Zweig äußere if bei nicht gesetzter Email: */
else {
echo "<h3>Die E-Mail-Adresse muss angegeben werden und gültig sein!</h3>\n";
echo "<p><a href='javascript:history.back()'>zurück zum Formular</a></p>\n";
}
}
?>
<div id="footer"></div>
</div>
</body></html>
Irgendwo muss ein Fehler sein, weil es kommt:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Dokumente und Einstellungen\MeikeLinde\Desktop\xampp-win32-1.7.2\xampp\htdocs\Cetlalic\unimailer_anmeldung.php:93) in C:\Dokumente und Einstellungen\MeikeLinde\Desktop\xampp-win32-1.7.2\xampp\htdocs\Cetlalic\unimailer_anmeldung.php on line 94
Line 94 ist:session_start();
Ich würde mich sehr freuen, wenn Ihr mir helfen könnt.
Lieben Dank, Meike
