PHP Probleme bei Captcha mit UMTS

Hattrix

Cadet 4th Year
Registriert
März 2007
Beiträge
111
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:
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?
 
Das kann ansich nicht mit dem UMTS zusammenhängen, solange nicht auf z.B. Cookies oder eine IP-Bindung zurückgegriffen wird. Übrigens wirkt dein Captcha auf mich als zu kompliziert. Die Sessions deiner Besucher werden doch server-side gespeichert, oder? Dann setz doch das finale Ergebnis einfach in die Session und vergleich das nur, statt mit einer Pseudo-Verschlüsselung zu arbeiten.
 

Ähnliche Themen

O
2
Antworten
20
Aufrufe
2.993
omaliesschen
O
Zurück
Oben