Thread Captcha "einbauen" ?
(23 answers)
Opened by BerndHennig at 2013-01-23 08:34
Mal kurz nachgedacht und als Text-Captcha ins unreine geschrieben. Kann ja als Anregung dienen.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 my @captchas = ( #capID,Frage,Antwort "123456#Farbe des Himmels#blau", "567851#Summe aus Drei und Sieben#10", "918265#Fünf mal Zwei minus Drei#7", "218153#Ein Cirrus ist eine ...#Wolke" ); sub generate_captcha { my $zufallsindex = int rand scalar @captchas; my ($capid,$frage,$antwort) = split /#/,$captchas[$zufallsindex]; return ($capid,$frage,$antwort); } sub check_captcha { my ($id,$answer) = @_; # Leerzeichen entfernen $answer =~ s/^\s//g; $answer =~ s/\s$//g; return 0 if not length($answer); # ungültige leere Antwort return 0 if not ($id =~ /^\d+$/); # ungültiger ID, keine Ziffern my $found = grep /^${id}#.+#\Q${answer}\E$/,@captchas; return $found; } my $captcha_antwort = CGI::param('capans'); my $captcha_id = CGI::param('capid'); my $captcha_geloest = 0; if (!length($captcha_antwort) and !length($captcha_id)) { ($captcha_id, $captcha_frage, undef) = generate_captcha(); } else { $captcha_geloest = check_captcha($captcha_id,$captcha_antwort); } im Formular dann noch eintragen: Code: (dl
)
1 Frage: $captcha_frage <input type="text" name="capans" value="$captcha_antwort"> PS: Ich weiß nicht, ob die Lizenzbedingungen von e-classified überhaupt Codeänderungen zulassen. //EDIT: Tippfehler, muss noch lernen captcha richtig zu schreiben ;) Zeile 35 geändert Last edited: 2013-01-23 11:58:11 +0100 (CET) |