|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Dmitry 2:5020/400 04 Mar 2002 21:55:11 To : Sergey Yurevich Subject : Re: POST --------------------------------------------------------------------------------
> Извините за ламеркий вопрос, но всё-таки попрошу ответить. Как передать данные
> с помощью POST? С ГЕТ все понятно одна переменная отвечает за всё, а тут
> как-то странно, непонятно. Вот у меня есть форма. Как после передачи
> параметров записать данные из формы в перменныфе $perv $vtoroy. <form
> ..."post"> <input name=df> ====> $df <input name=df2> ====> $df2
> </form>
Вы наверное имели в виду получение данных из POST? Тогда:
%FORM = &parse_form;
# Теперь в хэше %FORM есть все переменные из форм.
print $FORM{df};
print $FORM{df2};
# Универсальная подпрограмма, работающая как с GET, так и с POST.
sub parse_form {
my (@pairs, %in);
my ($buffer, $pair, $name, $value);
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
@pairs = split(/&/, $ENV{'QUERY_STRING'});
} elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
} else {
print ("This script must be called from the Web\nusing either GET or
POST requests\n\n");
die;
}
PAIR: foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
if ($value eq "---") { next PAIR; }
(exists $in{$name}) ?
($in{$name} .= "~~$value") :
($in{$name} = $value);
}
return %in;
}
Дмитрий
http://ariadnamedia.ru
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/117638b2ea92b.html, оценка из 5, голосов 10
|