CGI-BBS > CGI > Perl > URLの .cgi?gr=abcについて、値abcを$grに代入したい。


カレッヂ
カレッヂ


質問者 夢妃  投稿日 11/2(土) 06:48:14
初めてperlをいじっています。
よく使われるテクニックと思い一応ログは読みましたが、
見つからなかったのでよろしくおねがいします。

例えばこのHPで以下のようにあるとき
http://www.rescue.ne.jp/CGI-BBS/next.cgi?vp=2&allhits=268&group=cgi&cat=perl
next.cgiが相手の入力したURLを取得し、
「?」以下のそれぞれの値を分解し、
それぞれの変数に代入していると思いますが、
どのようなプログラムなのでしょうか?

よろしければご教示ください。
よろしくおねがいします。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Win95系
エディタ:
FTPソフト:ffftp
サーバ移転:していない
改造:していない 改造前正常動作
CGI習熟度:middle

回答者 まさ  [削除]  投稿日 11/2(土) 13:13:20
next.cgiを以下のようにして呼び出して下さい。
ご希望の結果が出ると思います。

--------------------------------------------------------
#!/usr/local/bin/perl

use strict;

my ($vp, $allhits, $group, $cat);
my %DATA = ();
my @pairs = split(/&/,$ENV{'QUERY_STRING'});

foreach (@pairs) {
    my ($name, $value) = split /=/;
    $value =~ tr/+/ /;
    $value =~ s/\n//g;
    $DATA{$name} = $value;
}

$vp      = $DATA{'vp'};
$allhits = $DATA{'allhits'};
$group   = $DATA{'group'};
$cat     = $DATA{'cat'};

print "Content-type: text/html\n\n";

print "vp = $vp<br>\n";
print "allhits = $allhits<br>\n";
print "group = $group<br>\n";
print "cat = $cat\n";

exit;

質問者 夢妃  [削除]  投稿日 11/2(土) 15:38:35
まさ様、ありがとうございます。
期待通り動きました。
ここ数日間探していた答えが得られました。
このHPの運営の皆さまもありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技