Captcha in einfachen Formmailer einbinden

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Captcha in einfachen Formmailer einbinden

Beitragvon telamonia » 18.02.2007, 16:15

Hallo,

ich will den Zahlencaptcha in folgendne Formmailer einbinden, hat leider nicht funktioniert, weil ich Recht wenig von PHP verstehe:

-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------


Hier die Formulardatei:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Agsformular</title>
<meta name="description" content="Elektronisches Antragsformular für einvernehmliche Scheidungen per Internet">
<meta name="author" content="juergen marqua">
<meta name="keywords" content="Onlinescheidung, Online-Scheidung, Sofortscheidung, Scheidung, Ehescheidung, Internetscheidung, Internet-Scheidung">
<meta name="robots" content="all">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-type" content="text/css">
<meta name="expires" content="0">
<link rel=stylesheet href="../css/formframe.css" type="text/css">
<link rel="shortcut icon" href="../icon/favicon.ico" type="image/x-icon">
</head>
<body>


<div align="center">
<table width="550" border="0" cellpadding="0" cellspacing="5">
<tr>
<td><font size="5" face="VERDANA">Scheidungsantragsformular<b></font>
</td>
</tr>
<tr>
<td></td>
</tr>
</table></div>

<form action="mail1.php" method="post">
<table width="550" border="0" align="center" bgcolor="transparent">

//dann kommen viele Felder zum Ausfüllen
//und am Ende hier der Code (Innerhalb einer Tabelle natürlich)
//captcha.php, captcha.png/ arial.ttf sind im Ordner "captcha"


<tr>
<td><img src="../captcha/captcha.php" border="0" title="Sicherheitscode"></td>
<td><input type="text" name="sicherheitscode" size="4"></td>
</tr>
</table>
</form>
</body>
</html>

-----------------------------------------------------------------------------------
------------------------------------------------------------------------------------

Hier jetzt die mail1.php-Datei:


<?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"], "8h384ls94");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);


// Hier beginnt das Formular-Skript

$strEmpfaenger = 'juergen.marqua@arcor.de';
$strFrom = '"Formmailer" <juergen.marqua@arcor.de>';
$strSubject = 'Scheidungsantragsformular';
$strReturnhtml = 'http://www.getback-beatlesnight.de/klarl/html/ifdanke.html';
$strDelimiter = ":\t";

if($_POST)
{
$strMailtext = "";

while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}

if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
?>
telamonia
 
Beiträge: 2
Registriert: 18.02.2007, 16:05

Beitragvon telamonia » 21.02.2007, 23:27

Hallo,

weiß mir wirklich niemand zu helfen? Ist doch sicher ein kleines Problem für große Könner, hmm?:-)

Telamonia
telamonia
 
Beiträge: 2
Registriert: 18.02.2007, 16:05

Beitragvon Nanard » 22.02.2007, 09:26

Hallo telamonia,

ich bin nicht der spezialist von PHP, aber gestern ich habe auch das Problem gehabt und etwas geunden, vielleicht kann auch das bei dir helfen.
In dein mail1.php ist ein Fehler, du fangst mit ein IF aber du enderst ihn nicht da Fehlt ein Geschweifte Klammern am ende. Und vielleicht kannst du zusätlich ein ELSE wenn er ein falsche Code einträgt, anbei dein Code korrigiert, aber bei der zeile header("Location: test.htm?z=1");
anstatt test.htm solltest du deine Seite eintragen.

Code: Alles auswählen
<?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"], "8h384ls94");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);


// Hier beginnt das Formular-Skript

$strEmpfaenger = 'juergen.marqua@arcor.de';
$strFrom = '"Formmailer" <juergen.marqua@arcor.de>';
$strSubject = 'Scheidungsantragsformular';
$strReturnhtml = 'http://www.getback-beatlesnight.de/klarl/html/ifdanke.html';
$strDelimiter = ":\t";

if($_POST)
{
$strMailtext = "";

while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}

if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
}
else {
header("Location: test.htm?z=1");
}
?>


Ich wünsche ich könnte dir helfen.

Gruß
Davy
(PS: sorry für mein Deutsch, aber mein Französische Seite kommt raus)
Nanard
 
Beiträge: 5
Registriert: 21.02.2007, 11:17


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron