Переводим POST значения запроса к скрипту perl в хеш массив

Posted in Новости on 31 января, 2014 by admin

Допустим, к скрипту дается запрос :

http://1.1.1.1/1.pl?os=Debian&ver=7


my $post = $ENV{'QUERY_STRING'}; # Захватываем весь POST в переменную
my %queries;
my @pairs = split('&',$post); # Разбиваем нашу переменную на массив попарные os=Debian и ver=7
foreach (@pairs) {
my($item,$value) = split(/=/,$_); # Берем значение и разбиваем его, делая из значения ДО знака равно ключ, а после знака - значение
$queries{$item} = $value; # Вносим в хеш массив новое значение
}
my $os = $queries{os}; # Переводим наши значения в более короткий вид
my $ip = $quirues{ver};

Tags: , , ,

использование reCAPTCHA в perl CGI

Posted in Новости on 13 октября, 2012 by admin

Модуль cpan — http://search.cpan.org/dist/Captcha-reCAPTCHA/lib/Captcha/reCAPTCHA.pm

Регистрируем домен в https://www.google.com/recaptcha и получаем PRIVATE_KEY и PUBLIC_KEY . Далее устанавливаем модуль Captcha::reCAPTCHA . По образцу со страницы модуля пишем простой скрипт :


#!/usr/bin/perl

use CGI;
use Captcha::reCAPTCHA;
$cgi = CGI->new();
my $c = Captcha::reCAPTCHA->new;
print "Content-type:text/html\r\n\r\n";
print <

HTML
my $result = $c->check_answer(
"PRVATE_KEY", $ENV{'REMOTE_ADDR'},
$cgi->param(recaptcha_challenge_field),
$cgi->param(recaptcha_response_field)
);
if ( $result->{is_valid} ) {
print "Yes!";
}
else {
$error = $result->{error};
}
print $c->get_html( 'PUBLIC_KEY', $error );
#

print <

HTML


Как видите, мы описали CGI, и поместили в разрезе функцию ввода и проверки капчи :

my $result = $c->check_answer(
"PRVATE_KEY", $ENV{'REMOTE_ADDR'},
$cgi->param(recaptcha_challenge_field),
$cgi->param(recaptcha_response_field)

и функцию вывода ответа :

print $c->get_html( 'PUBLIC_KEY', $error );

Сама переменная правильности ответа ( Да/Нет ) находится тут — $result->{is_valid}

Tags: , , ,