Hallo, ich habe leider auch das selbe Problem wie mein Vorgänger,
ich bekomme im bestehenden Formular die Rechenabufgabe und das dazugehörende Kontrollkästchen angezeigt.
Allerdings wird die Mail ohne Zahleingabe verschickt.
Hat jemand vielleicht Lust, sich mal den Code anzuschaun?
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{txt_content_direction}">
<head>
<title>{txt_script_name} {txt_script_version}</title>
<meta http-equiv="Content-Type" content="text/html; charset={txt_charset}" />
<style type="text/css">
<!--
} body {
font-family:Tahoma,Helvetica,Geneva,Sans-serif,sans-serif;
}
p, td, br, form, div, span, blockquote {
font-family:Tahoma,Helvetica,Geneva,Sans-serif,sans-serif;
font-size:9pt;
}
.index {
font-weight:bold;
}
#poweredby {
text-align:center;
}
-->
</style>
</head>
<body>
<h4>{txt_script_name}</h4>
<p>{txt_welcome_text}</p>
<!-- Display error messages (required fields etc.) -->
<LOOP NAME="message">
<blockquote style="color:#FF5F00;">
<p style="font-weight:bold;">{message}</p>
<blockquote>{fields}</blockquote>
</blockquote>
</LOOP NAME="message">
<!-- Display data -->
<LOOP NAME="display_data">
<table border="0" cellspacing="3" cellpadding="0">
<tr>
<td class="index">{txt_firstname} </td>
<td> </td>
<td>{firstname}</td>
</tr>
<tr>
<td class="index">{txt_lastname} </td>
<td> </td>
<td>{lastname}</td>
</tr>
<tr>
<td class="index">{txt_sender_email} </td>
<td> </td>
<td>{sender_email}</td>
</tr>
<tr>
<td class="index">{txt_friend_email} </td>
<td> </td>
<td>{friend_email}</td>
</tr>
<tr valign="top">
<td class="index">{txt_comment} </td>
<td> </td>
<td>{comment}</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</LOOP NAME="display_data">
<!-- Display form -->
<IF NAME="display_form">
<form action="./index.php" method="post">
<input type="hidden" name="required_fields" value="lastname, sender_email, friend_email" />
<input type="hidden" name="email_fields" value="sender_email, friend_email" />
<input type="hidden" name="html_template" value="form.tpl.html" />
<input type="hidden" name="mail_template" value="mail.tpl.txt" />
<input type="hidden" name="redirect" value="{redirect}" />
<!--<input type="hidden" name="thanks" value="./docu/thanks.html" />-->
<table border="0" cellspacing="3" cellpadding="0">
<tr>
<td></td>
<td> </td>
<td>
<p>{txt_send_referer}</p>
<p><a href="{url}">{url}</a></p>
<br />
</td>
</tr>
<tr>
<td>{txt_firstname}</td>
<td> </td>
<td><input type="text" name="firstname" value="{firstname}" size="35" style="width:350px;" /></td>
</tr>
<tr>
<td>{txt_lastname}*</td>
<td> </td>
<td><input type="text" name="lastname" value="{lastname}" size="35" style="width:350px;" /></td>
</tr>
<tr>
<td>{txt_sender_email}* </td>
<td> </td>
<td><input type="text" name="sender_email" value="{sender_email}" size="35" style="width:350px;" /></td>
</tr>
<tr>
<td>{txt_friend_email}* </td>
<td> </td>
<td><input type="text" name="friend_email" value="{friend_email}" size="35" style="width:350px;" /></td>
</tr>
<tr>
<td valign="top">{txt_comment} </td>
<td> </td>
<td><textarea name="comment" cols="35" rows="6" wrap="virtuell" style="width:350px;">{comment}</textarea></td>
</tr>
<tr>
<td colspan="3"><br>
<p>Um Spam zu verhindern trage das Ergebnis rechts ein. Danke. </p>
<tr><td><img src="../rechen-captcha.php"></td>
<td><input type="text" name="sicherheitscode" size="4"></td>
</tr>
<br>
<br>
<?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"], "41hgkd632");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
session_start();
unset($_SESSION['rechen_captcha_spam']);
$zahl1 = rand(10,20); //Erste Zahl 10-20
$zahl2 = rand(1,10); //Zweite Zahl 1-10
$operator = rand(1,2); // + oder -
if($operator == "1"){
$operatorzeichen = " + ";
$ergebnis = $zahl1 + $zahl2;
}else{
$operatorzeichen = " - ";
$ergebnis = $zahl1 - $zahl2;
}
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);
}
$_SESSION['rechen_captcha_spam'] = encrypt($ergebnis, "29jfkd921"); //Key
$_SESSION['rechen_captcha_spam'] = str_replace("=", "", $_SESSION['rechen_captcha_spam']);
$rechnung = $zahl1.$operatorzeichen.$zahl2." = ?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
}
?>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td><br>
<br>
<input type="submit" name="mode_preview" value="{txt_preview}" /> <input type="submit" name="submit" value="{txt_submit}" /> <input type="reset" name="Zurück"/></td>
</tr>
</table>
</form>
<p>
* = {txt_mandatory_fields}
</p>
</IF NAME="display_form">
</body>
</html>
dies ist der Code des rechen-captcha.php, welches sich eine Ebene höher befindet:
<?php
session_start();
unset($_SESSION['rechen_captcha_spam']);
$zahl1 = rand(10,20); //Erste Zahl 10-20
$zahl2 = rand(1,10); //Zweite Zahl 1-10
$operator = rand(1,2); // + oder -
if($operator == "1"){
$operatorzeichen = " + ";
$ergebnis = $zahl1 + $zahl2;
}else{
$operatorzeichen = " - ";
$ergebnis = $zahl1 - $zahl2;
}
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);
}
$_SESSION['rechen_captcha_spam'] = encrypt($ergebnis, "41hgkd632"); //Key
$_SESSION['rechen_captcha_spam'] = str_replace("=", "", $_SESSION['rechen_captcha_spam']);
$rechnung = $zahl1.$operatorzeichen.$zahl2." = ?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
Es wäre nett, wenn ich eine Antwort bekommen würde, da die Zahlen als solches zwar recht nett aussehen, aber nix bewirken.
Vielen Dank im voraus.
Vielleicht noch der Link zur Homepage
- dann unter Weiterempfehlen
Harry
