Ich werf (bald) das Handtuch

Hier werden Probleme rund um das Rechen Captcha behandelt

Moderator: frameguard

Ich werf (bald) das Handtuch

Beitragvon Kanadier » 27.09.2008, 14:25

Hallo an alle Experten!

Nach unzähligen Versuchen bekomme ich es einfach nicht hin, das Rechen-Captcha erfolgreich einzubinden. Trotz dass ich in meinem Formular das Captcha korrekt angezeigt bekomme, spielt es keine Rolle ob oder welches Ergebnis ich in das Textfeld eintrage. Richtig oder falsch, die Übermittlung findet in jedem Fall statt. Ich würde mich riesig freuen, wenn sich jemand meinen Code einmal unter die Lupe nimmt.

Link zur Seite: http://www.glund.de/fan.htm

Hier der Code: (rot = das eingebaute Rechen-Captcha)

<?php
while(list($key,$val) = each($_POST))
$$key = $val;
while(list($key,$val) = each($_GET))
$$key = $val;
include("danke.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']);
}
?>



<html>
<head>
<title>Formel-1 Tipp</title>
</head>
<body bgcolor="B0C4DE" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<?php
print "Vielen Dank, Dein Tipp wurde an mich ";
$to = "$adminemail" ;
$from = "$email" ;
$subject = "$namederbestellung" ;
$message = "Hallo $admin ,\n\n $namederbestellung\n\nMeine Daten :\nFahrer : $fahrer\nGP : $gp\nName : $name\nOrt : $ort\nKommentar : $kommentar\n\nMfg\n$name" ;
if(mail($to,$subject,$message,"fromrnx-Priority: 1 (Highest)")) {
?>
<?php
} else {
print "<b>nicht</b> ";
}
print "versendet .";
print "<br><br><b>Deine Daten :</b><br>Fahrer : $fahrer<br>GP : $gp<br>Name : $name<br>Ort : $ort<br>Kommentar : $kommentar<br><br>Mfg<br>$admin";
?>
<div align="center">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="790" height="20">
<tr bgcolor="336699" valign="top">
<td bgcolor="336699">
<div align="center"><font color="#FFFFFF"><u><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><a target="_top" href="index.html">Home</a></font></u></font></div>
</td>
<td>
<div align="center"><font color="#FFFFFF"><u><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><a target="_self" href="sitemap.htm">Sitemap</a></font></u></font></div>
</td>
<td>
<div align="center"><font color="#FFFFFF"><u><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><a href="mailto:klaus@glund.de">E-Mail</a></font></u></font></div>
</td>
<td>
<div align="center"><a target="_self" href="impress.htm"><font color="#FFFFFF"><u><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Impressum</font></u></font></a></div>
</td>
</tr>
</table>
</div>
</body>
</html>


Hoffe, das ich es durch eure Hilfe doch noch gebacken bekomme.

Gruß
Kanadier
Kanadier
 
Beiträge: 4
Registriert: 27.09.2008, 13:38

Beitragvon Kanadier » 29.09.2008, 17:07

Hallo Experten!

Der Stand ist noch der gleiche.
Bin leider immer noch nicht weiter gekommen und würde mich über jede
Ünterstützung freuen.

Gruß
Kanadier
Kanadier
 
Beiträge: 4
Registriert: 27.09.2008, 13:38

Beitragvon Kanadier » 06.10.2008, 06:29

...hat denn keiner einen Tipp
Kanadier
 
Beiträge: 4
Registriert: 27.09.2008, 13:38

Beitragvon Wegelagerer » 08.10.2008, 10:02

Hi,

wenn ich micht nicht irre, liegt das daran, dass Du nicht prüfst, ob der Code korrekt eingegeben wurde. Dies musst Du mit einer If-then-Bedingung im eigentlich Code tun, dort wo Deine Mail versendet wird. Im else-Zweig könntest Du noch angeben, was passiert, wenn der Code falsch ist.

Ich hoffe, ich konnte Dir helfen.

VG.
Wegelagerer
 
Beiträge: 3
Registriert: 08.10.2008, 09:58

Und nochmal

Beitragvon Wegelagerer » 09.10.2008, 08:14

Jetzt habe ich mir das nochmal genauer angeguckt.

Ich hatte mit meiner ersten Vermutung schon mehr oder weniger Recht.

Du hast in dem PHP-Code von Deinem Skript eine if-then-Bedingung. (ziemlich am Ende). Dort wird überprüft, ob der Code korrekt eingegeben ist. Deine Formularauswertung findet aber außerhalb der Bedingung statt. Dies bedeutet, dass zwar geprüft wird, ob der Code korrekt ist, aber egal, was diese Prüfung ergibt, wird Dein Formular trotzdem versendet.

Du musst also den Teil, wo Dein Formular verschickt wird, innerhalb der if-Bedingung einbauen (also vor der letzten }).

Dann müsste es gehen..
Wegelagerer
 
Beiträge: 3
Registriert: 08.10.2008, 09:58

Beitragvon Kanadier » 09.10.2008, 18:39

Hallo Wegelagerer

Besten Dank für Deine Mühe.

Könntest Du mir genau sagen wo und was ich an welcher Stelle eintragen sollte, damit das Captcha funktioniert.

Habe versucht es so hinzubekommen wie Du gesagt hast jedoch ohne Erfolg.

Blicke kaum noch durch.

Gruß
Kanadier
Kanadier
 
Beiträge: 4
Registriert: 27.09.2008, 13:38

Beitragvon Wegelagerer » 09.10.2008, 20:53

Hallo, ja kann ich machen.

Also:

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']);
// Hier musst Du Deinen Code einfügen, der das Formular auswertet.
// In etwa so:

print "Vielen Dank, Dein Tipp wurde an mich ";
$to = "$adminemail" ;
$from = "$email" ;
$subject = "$namederbestellung" ;
$message = "Hallo $admin ,\n\n $namederbestellung\n\nMeine Daten :\nFahrer : $fahrer\nGP : $gp\nName : $name\nOrt : $ort\nKommentar : $kommentar\n\nMfg\n$name" ;
if(mail($to,$subject,$message,"fromrnx-Priority: 1 (Highest)")) {
} else {
print "<b>nicht</b> ";
}
print "versendet .";
print "<br><br><b>Deine Daten :</b><br>Fahrer : $fahrer<br>GP : $gp<br>Name : $name<br>Ort : $ort<br>Kommentar : $kommentar<br><br>Mfg<br>$admin";
} else {
//Hier kannst du noch reinschreiben, was passieren soll, wenn der Sicherheitscode falsch eingegeben wurde.
}

?>


<html>
<head>
<title>Formel-1 Tipp</title>
</head>
<body bgcolor="B0C4DE" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">



So sollte das ungefähr aussehen. Ich habe jetzt nur Deinen Code an die richtige Stelle kopiert, aber nicht geguckt, ob der Code zur Formularauswertung korrekt ist.

Viele Grüße,

Wegelagerer
Wegelagerer
 
Beiträge: 3
Registriert: 08.10.2008, 09:58


Zurück zu Rechen Captcha

Wer ist online?

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

cron