>>Народ, может кто слышал о такой ситуации - при выполнении скрипта на
>>Perl под Апачем, нехотят передаваться параметры методом POST.
>>Проверка переменной $CGI::POST_MAX и LimitRequestBody в httpd.conf результатов не дала. Все ОК.
>>
>>При этом значение $ENV{'CONTENT_LENGTH'} не нулевое.
>>Если у кого есть идеи и предложения, буду благодарен
>
>read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
>@pairs = split(/&/, $buffer);
>foreach $pair (@pairs)
> {
> ($name, $value) = split(/=/,
>$pair);
> $value =~ tr/+/ /;
>
> $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>
> $FORM{$name} = $value;
> }
>
>Потом получаешь доступ так $cladd=$FORM{'имя_параметра'};
>
>Изящно скажи же =))) Ищется в google на ура
Извиняюсь случайно нажал отправить.
Изящно, спору нет.
Но это я уже пробывал.
При передаче параметров функция param() не работает (для моего второго собеседника). А чтение из потока STDIN дает те же результаты.
У меня код приблизительно такой же:
use CGI;
if ($ENV{'REQUEST_METHOD'}=='POST')
{
read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
my @pairs=split(/&/,$in);
print start_html();
foreach (@pairs)
{
my ($var1, $var2)=split(/=/, $in, 2);
print "$var1 $var2";
}
print end_html();
}
else {}
Так вот если это делать через perl *.pl, то все рулит. А через веб интерфейс неа . Может что с Апачем не то, непойму. Еще идеи :-)
Кстати третий день уже пытаюсь. :)
|