クラウドで 伸びる人沈む人 |
|
|
|
Perlのプログラムを実行するときのGETとPOST
<IT技術の処方箋:Perlのプログラムを実行するときのGETとPOST> WEB上で、Perlのプログラムを実行するときの パラメータは、GET,POSTとCookieがあります。 実は、この2つのパラメータは、 取得順位があります。Cookieを先に取得しないと うまくいかないサーバーが存在することが確認されています。 ●以下のサンプルのように、make_in(Get,Postの取得)より Cookieを先にソースに書きましょう。 サンプル #!/usr/bin/perl &GetCookie; #make_inより、GetCookieを先に &make_in; sub GetCookie { local(*COOKIE) = @_; local($name, $value); foreach (split(/; */, $ENV{'HTTP_COOKIE'})) { ($name, $value) = split(/=/); $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; $COOKIE{$name} = $value; } } sub make_in{ 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; &jcode'convert(*value,'sjis'); $in{$name} = $value; } }
慣れてきましたか?慣れてきたら、
Perl(CGI)の間違いを簡単に見つける というレポートも見ましょう |