Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Paul Kulchenko                       2:5020/400     21 Aug 2000  17:53:58
 To : All
 Subject : Re: сохранение состояния формы
 -------------------------------------------------------------------------------- 
 
 Hi, Ilya!
 
 Ilya Soldatkin wrote:
 
 > Пытаюcь сохранить полученные значения из формы в файл. Hо ничего кроме символа
 > равно в файл не записывается.
 > 
 > use CGI;
 > #<-- Принимаем входные данные -->
 > if ($ENV{'REQUEST_METHOD'} eq 'POST')
 > {
 >         read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 > }
 > else
 >   {$buffer = $ENV{"QUERY_STRING"}; }
 > 
 > @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;
 >         $input{$name} = $value;
 > }
 > 
 > ....
 > 
 > $query=new CGI;
 > $filesave="/home/arc/visualsec/temp/file$$";
 > if (!open(FSAVE,">$filesave"))
 >         {die "Hе могу открыть $file!\n";};
 > $query->save(FSAVE);
 > close FSAVE;
 > 
 > Если убрать строку read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 > сохранение будет произведено правильно. Hо данный вариант непреемлим поскольку
 > в дальнейшем часто используется хеш %input. Чего бы здесь изменить/добавить,
 > чтобы можно было сохранить в файле полученные значения из формы,и иметь их в
 > %input.
 
 А чего же ты ожидаешь? Откуда CGI.pm возмет данные, если ты их уже
 считал в строке read(STDIN,....)? Он же не волшебник. Так что не пытайся
 с ним состязаться, выкинь свой %input и работай с его методами. Если же
 очень надо сохранить %input, то выкинь свою обработку, делай только
 $query = new CGI, а после этого что-то вроде:
 %input = map {$_ => $query->param($_)} $query->param;
 
 Мораль: не надо состязаться с готовыми модулями, тем более в одном
 скрипте. Потратьте 3-5 минут на их изучение, скрипт станет и короче и
 правильнее.
 
 Best wishes, Paul.
 --- ifmail v.2.15dev5
  * Origin: Trans World Airlines (TWA) (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 сохранение состояния формы   Ilya Soldatkin   21 Aug 2000 14:38:13 
 Re: сохранение состояния формы   Paul Kulchenko   21 Aug 2000 17:53:58 
Архивное /ru.perl/35556b722f91.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional