Zahlencaptcha funzt nicht

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Zahlencaptcha funzt nicht

Beitragvon BerlinTop » 23.06.2007, 10:07

Ich habe auf meiner website ein Kontaktformular. Mailtest.php prüft, ob eine email-Adresse eingegeben wurde. Im positiven Falle wird eine Mail versendet, im negativen nicht. Das funktioniert prima:
<?

$mailsubject = "RNAx GmbH";
$mailheaders = "Return-Path:info@rnax.de\n";
$mailheaders .= "From: info@rnax.de\n";
$mailheaders .= "Cc: \n";
$mailheaders .= "Bcc: \n";
$mailheaders .= "Reply-To:info@rnax.de\n";
$mailheaders .= "X-Mailer:mailbot_in_php \n";



if (!$email) {
print("<B>ERROR: No E-mail address given. Action Failed!</B>\n");
exit;
}

if (!$request) {
$request = "None Given";
}
if (!$name) {
$name = "Withheld";
}

if ($recipient==general) {
$recipient = "general information about RNAx.";
}

else
{
$recipient = "specific information about ";
}

$msg = "Thank you $gender $name for your mail\n\n";

$msg .= "Your request was: $recipient $request\n\n";
$msg .= "Name: $name\n";
$msg .= "Company: $company\n";
$msg .= "Department: $department\n";
$msg .= "Street: $street\n";
$msg .= "ZIP: $ZIP\n";
$msg .= "City: $city\n";
$msg .= "Country: $country\n";
$msg .= "Phone: $telephone\n";
$msg .= "Fax: $fax\n";
$msg .= "eMail: $email\n";

$msg .= "We have a mailing list about our website and the company,\n if you are interested reply to this mail with subject: \"subscribe\" ";

$appmsg = "An E-mail has been send from your website by:\n\n";

$appmsg .= "$gender $name\n";
$appmsg .= "Email: $email\n\n";
$appmsg .= "With the following request: $recipient $request\n\n";
$appmsg .= "Further information left:\n\n";
$appmsg .= "Name: $name\n";
$appmsg .= "Company: $company\n";
$appmsg .= "Department: $department\n";
$appmsg .= "Street: $street\n";
$appmsg .= "ZIP: $ZIP\n";
$appmsg .= "City: $city\n";
$appmsg .= "Country: $country\n";
$appmsg .= "Phone: $telephone\n";
$appmsg .= "Fax: $fax\n";
$appmsg .= "eMail: $email\n";

if (mail($email, $mailsubject, $msg, $mailheaders)) {

print("<HTML><BODY BGCOLOR=FFFFFF><TABLE><TR><TD height=10 colspan=2></TD></TR><TR><TD width=10></TD><TD><FONT face=verdane,arial size=2 color=black>Thank you \n $gender $name<BR>\n We recieved your message;<BR><BR>\n");
print("Your request was:\n $recipient $request<BR>\n\n");
print("Name:\n $name<BR>\n\n");
print("Company:\n $company<BR>\n\n");
print("Department:\n $department<BR>\n\n");
print("Street:\n $street<BR>\n\n");
print("ZIP:\n $ZIP<BR>\n\n");
print("City:\n $city<BR>\n\n");
print("Country:\n $country<BR>\n\n");
print("Phone:\n $telephone<BR>\n\n");
print("Fax:\n $fax<BR>\n\n");
print("eMail:\n $email<BR><BR>\n\n");
print("Your Email-copy has been send to your account: $email <BR><BR> We will send you the requested information asap.</font></td></tr></table></body></HTML>");
}
else {
print("Error: The message could not be sent.\n");
}
mail("info@rnax.de"," $mailsubject", "$appmsg", "$mailheaders")

?>

Weil nun Spammer ständig emails von dem Forumlar versenden, habe ich in das Formular ein captcha-Bild und eine code-eingabe eingebaut, die auch angezeigt werden.

Die mailtest.php habe ich wie folgt modifiziert (rot) (die captcha-Prüfung um das "alte" script herumgesetzt):


<?

session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

$mailsubject = "RNAx GmbH";
$mailheaders = "Return-Path:info@rnax.de\n";
$mailheaders .= "From: info@rnax.de\n";
$mailheaders .= "Cc: \n";
$mailheaders .= "Bcc: \n";
$mailheaders .= "Reply-To:info@rnax.de\n";
$mailheaders .= "X-Mailer:mailbot_in_php \n";



if (!$email) {
print("<B>ERROR: No E-mail address given. Action Failed!</B>\n");
exit;
}

if (!$request) {
$request = "None Given";
}
if (!$name) {
$name = "Withheld";
}

if ($recipient==general) {
$recipient = "general information about RNAx.";
}

else
{
$recipient = "specific information about ";
}

$msg = "Thank you $gender $name for your mail\n\n";

$msg .= "Your request was: $recipient $request\n\n";
$msg .= "Name: $name\n";
$msg .= "Company: $company\n";
$msg .= "Department: $department\n";
$msg .= "Street: $street\n";
$msg .= "ZIP: $ZIP\n";
$msg .= "City: $city\n";
$msg .= "Country: $country\n";
$msg .= "Phone: $telephone\n";
$msg .= "Fax: $fax\n";
$msg .= "eMail: $email\n";

$msg .= "We have a mailing list about our website and the company,\n if you are interested reply to this mail with subject: \"subscribe\" ";

$appmsg = "An E-mail has been send from your website by:\n\n";

$appmsg .= "$gender $name\n";
$appmsg .= "Email: $email\n\n";
$appmsg .= "With the following request: $recipient $request\n\n";
$appmsg .= "Further information left:\n\n";
$appmsg .= "Name: $name\n";
$appmsg .= "Company: $company\n";
$appmsg .= "Department: $department\n";
$appmsg .= "Street: $street\n";
$appmsg .= "ZIP: $ZIP\n";
$appmsg .= "City: $city\n";
$appmsg .= "Country: $country\n";
$appmsg .= "Phone: $telephone\n";
$appmsg .= "Fax: $fax\n";
$appmsg .= "eMail: $email\n";

if (mail($email, $mailsubject, $msg, $mailheaders)) {

print("<HTML><BODY BGCOLOR=FFFFFF><TABLE><TR><TD height=10 colspan=2></TD></TR><TR><TD width=10></TD><TD><FONT face=verdane,arial size=2 color=black>Thank you \n $gender $name<BR>\n We recieved your message;<BR><BR>\n");
print("Your request was:\n $recipient $request<BR>\n\n");
print("Name:\n $name<BR>\n\n");
print("Company:\n $company<BR>\n\n");
print("Department:\n $department<BR>\n\n");
print("Street:\n $street<BR>\n\n");
print("ZIP:\n $ZIP<BR>\n\n");
print("City:\n $city<BR>\n\n");
print("Country:\n $country<BR>\n\n");
print("Phone:\n $telephone<BR>\n\n");
print("Fax:\n $fax<BR>\n\n");
print("eMail:\n $email<BR><BR>\n\n");
print("Your Email-copy has been send to your account: $email <BR><BR> We will send you the requested information asap.</font></td></tr></table></body></HTML>");
}
else {
print("Error: The message could not be sent.\n");
}
mail("info@rnax.de"," $mailsubject", "$appmsg", "$mailheaders")


}
?>

Was nun passiert: egal, ob eine email-Adresse eingegeben ist oder nicht, oder ob ein Sicherheitscode eingegeben ist, oder nicht - eine Mailwird in keinem fall gesendet, und man landet immer auf einer leeren Seite.

Wo habe ich 'ne Klammer oder ein if nicht zugemacht?

Merci
BerlinTop
 
Beiträge: 3
Registriert: 23.06.2007, 09:50

Beitragvon frameguard » 25.06.2007, 16:11

Ein nicht geschlossenes IF oder eine nicht geschlossene Klammer habe ich jetzt nicht gefunden. Wie sieht denn der Formularscript aus? Vielleicht wird entweder die Session oder der Sicherheitscode nicht richtig übergeben?
frameguard
 
Beiträge: 120
Registriert: 05.03.2007, 19:19
Wohnort: Wien

erledigt

Beitragvon BerlinTop » 25.06.2007, 16:26

Danke, hat sich erledigt. Ich habe einfach das komplette captcha-script (also den roten text) VOR das ursprüngliche script gesetzt (und nicht drumherum). Seitdem klappt es hervorragend, und beide Skripte werden ausgeführt.
BerlinTop
 
Beiträge: 3
Registriert: 23.06.2007, 09:50

Beitragvon frameguard » 25.06.2007, 16:28

Auf die Art bin ich damals bei meinem GB aus einem ähnlichen Problem gestolpert - das hätte ich Dir als nächstes geraten. ;)
frameguard
 
Beiträge: 120
Registriert: 05.03.2007, 19:19
Wohnort: Wien

Beitragvon BerlinTop » 25.06.2007, 16:32

Versuch macht kluch :-) :-)
BerlinTop
 
Beiträge: 3
Registriert: 23.06.2007, 09:50


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron