• ベストアンサー

CGIでのページ指定~その(2)

以前教えていただいた下記の記述なのですが 新規のCGIで実行するとうまく表示されません; $inの関連記述をしていないからでしょうか? まったくの新規のCGIで実行できる記述方法を 教えてください よろしくお願いします m(_ _)m **************************** if($in{'p'} eq '1'){&page1;} sub page1{ print"1ページ目"; print"<a href=./aaa.cgi?p=2>2ページ目</a>"; } ****************************

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#!/usr/bin/perl $buffer = &get_buffer(); %in = &get_value($buffer); $mode = $in{'p'}; if ($mode eq '1') { &page1; } sub page1{ print"1ページ目"; print"<a href=./aaa.cgi?p=2>2ページ目</a>"; } #------------------------- # $buffer取得 #------------------------- sub get_buffer { # フォームデータ取得 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $tmp, $ENV{'CONTENT_LENGTH'}); } else { $tmp = $ENV{'QUERY_STRING'}; } return($tmp); } #------------------------- # $buffer分解 #------------------------- sub get_value { @pairs = split(/&/,$_[0]); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\n//g; $form{$name} = $value; } return(%form); }

その他の回答 (1)

  • unipre
  • ベストアンサー率34% (16/47)
回答No.1

引数はとりあえず、代入してからのほうが いいと思います。 $p = $in{'p'}; if($p eq '1'){ &page1; } sub page1{ print"1ページ目"; print"<a href=./aaa.cgi?p=2>2ページ目</a>"; } あと、デコード処理はされてますか?

関連するQ&A

専門家に質問してみよう