|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/35556b722f91.html, оценка из 5, голосов 10
|