Hallo,
immer wieder bekomme ich von meinen Usern die Meldung, dass sie mit UMTS meine Captcha nicht lösen können.
Ich nutze ein Freeware "Rechen-Captcha-Spam", dass ich aus einer Webseite kopierte und bisher immer funktionierte.
Beispiel: http://www.club-vote.com/?action=vote_ms&v=SG Dynamo Dresden
Dort muss man diese Aufgabe lösen, jedoch kommt dann die Meldung, dass man sich verrechnet hat.
Funktion:
Captcha-Datei, die bei dem Link oben includet wird:
Prüfung:
Weiß jemand den Zusammenhang darüber oder kann mir evtl. ein anderes und besseres Captcha empfehlen?
immer wieder bekomme ich von meinen Usern die Meldung, dass sie mit UMTS meine Captcha nicht lösen können.
Ich nutze ein Freeware "Rechen-Captcha-Spam", dass ich aus einer Webseite kopierte und bisher immer funktionierte.
Beispiel: http://www.club-vote.com/?action=vote_ms&v=SG Dynamo Dresden
Dort muss man diese Aufgabe lösen, jedoch kommt dann die Meldung, dass man sich verrechnet hat.
Funktion:
PHP:
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"], "*************");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
Captcha-Datei, die bei dem Link oben includet wird:
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, "**************"); //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,192,192,192);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
Prüfung:
PHP:
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
Weiß jemand den Zusammenhang darüber oder kann mir evtl. ein anderes und besseres Captcha empfehlen?