我一直在为我正在开发的游戏做一个注册表格,除了captcha,一切都很好。它一直在说不正确的sol,即使我输入了正确的答案。我尝试过使用Data::Dumper进行调试,似乎每次都会返回false。
W.png
这是我的密码
use strict;
use warnings;
use CGI;
use Captcha::reCAPTCHA;
use Data::Dumper;
my $captcha = Captcha::reCAPTCHA->new();
my $html = CGI->new();
my $public_key = "6Ldbc9cSAAAAACYGs9FWEemI_A4Atx20sOtk6YA-";
my $private_key = "6Ldbc9cSAAAAAHs88TTzyytdrIlkbVx3h5x55t8j";
sub checkAndRegister {
my $result = $captcha->check_answer($private_key,
$ENV{'REMOTE_ADDR'},
$html->param("recaptcha_challenge_field"),
$html->param("recaptcha_response_field")
);
print Dumper($result);
if ($result->{is_valid}) {
#do stuff here
} else {
die ($result->{error});
}
}
sub output_form {
print $captcha->get_html($public_key);
}我们将非常感谢您的帮助!
发布于 2014-06-20 11:09:42
如果您在mod_perl或类似的情况下运行它,那么在第一个请求之后,checkAndRegister中使用的$html将是一个独立的变量,与其他地方使用的$html不同;将其传递到checkAndRegister以修复这个问题。
如果启用警告,您将看到一个“变量.不会保持共享”的警告。你可以读到它,这里。
https://stackoverflow.com/questions/24322700
复制相似问题