URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6157
[ Назад ]

Исходное сообщение
"LWP post рускиий"

Отправлено akam , 08-Фев-07 11:59 
проблемы с аутентификацией на русском через POST. такой код:
push @{ $browser->requests_redirectable }, 'POST';
my $response = $browser->post( $url,
[
    'action' => 'login',
    'login' => $login,
    'pwd' => $pass,
]);

если $login на английском, то все работат нормально, но если на руском, не пускает :(
это как-нибудь лечиться?


Содержание

Сообщения в этом обсуждении
"LWP post рускиий"
Отправлено ovax , 09-Фев-07 04:10 
>проблемы с аутентификацией на русском через POST. такой код:
>push @{ $browser->requests_redirectable }, 'POST';
>my $response = $browser->post( $url,
>[
>    'action' => 'login',
>    'login' => $login,
>    'pwd' => $pass,
>]);
>
>если $login на английском, то все работат нормально, но если на руском,
>не пускает :(
>это как-нибудь лечиться?


конечно лечится. Вы бы хоть со стандартами ознакомились... Экранировать надо русские буквы.
знак процента "%" и код символа надо вместо букв передавать


"LWP post рускиий"
Отправлено akam , 09-Фев-07 14:35 
>конечно лечится. Вы бы хоть со стандартами ознакомились... Экранировать надо русские буквы.
>
>знак процента "%" и код символа надо вместо букв передавать

а это как-нибудь связано с кодировками на сервере?
есть разница юникод там или кои8?

просто я сделал так, как вы сказали, он все равно не пускает.
а когда подредактировал скрипт в кодировке utf8 (без экранизации)все заработало :(
sub StrEscaped {
  my ($str)=@_;
  $str=~s/([^0-9A-Za-z\?&=:;])/sprintf("%%%x", ord($1))/eg;
  return $str
}