WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:フォームのデコード(perl)

0:[投稿] nao [2002/07/03 13:04 ][環境:WIN+IE WIN系+Perl]

大変困っています。レベルの低い質問で申し訳ないのですが教えていただけませんでしょうか?cgi-libを使わずにフォームデータの受け渡しをしたいのですがうまくいきません。cgi-libを使うとうまくいくのですが。

sub parseInput {

($form{'name'}) = @_;
local($buffer, $key, $val, $in, @in);

if ($ENV{'REQUEST METHOD'} eq 'GET') {
   $buffer = $ENV{'QUERY_STRING'};
}
elsif ($ENV{'REQUEST METHOD'} eq 'POST') {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}

@in = split(/&/, $buffer);

foreach $in(@in) {
   ($key, $val) = split(/=/, $in);
   $key =~ tr/+/ /;
   $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $val =~ tr/+/ /;
   $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

   $val =~ s/\t//g;
   $val =~ s/[\r\n]/\n/g;
   $val =~ s/&/&/g;
   $val =~ s/"/"/g;
   $val =~ s/</&lt\;/g;
   $val =~ s/>/&gt\;/g;

   $form{$key} = $val;
}
}

1;

&サブルーチン名の後の記述の仕方なども教えていただけると助かります。


1:[回答] R.M [2002/07/04 02:27 ]

>    $key =~ tr/+/ /;
>    $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>    $val =~ tr/+/ /;
>    $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
2行目は
   $key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
ではないかと

>    $val =~ s/[\r\n]/\n/g;
これは
   $val =~ s/\r\n|\r/\n/g;
こんな形のほうが良いかと

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World