カレッヂ |
質問者 ハシポン
投稿日 11/7(水) 12:15:37
あるインプットフォームの値を複数のCGIに割り振って渡したいと思っております。 たとえば、検索条件を入れてもらったあと、 そのまま検索結果を表示するkekke.cgiと さらにこだわり条件を入力したい人用へのkodawari.cgi の二つにはじめの検索条件の値を渡したりする場合です。 普通フォームを書くときって、 <form name="FormName" method="post" action="kekka.cgi"> <input type="text" name="data" size="45"> <input type="submit" name="submit" value="検索"> <input type="reset" name="submit2" value="クリア"> </form> として、ひとつのCGIにしか渡せません。 このdataの値を二つのボタンを使って、kekka.cgiとkodawari.cgiに 割り振って渡すことは可能でしょうか。 どうぞよろしくお願いいたします。 |
回答者 呑兵衛@大阪
[削除]
投稿日 11/8(木) 20:33:19
データを一時ファイルにしておき、双方から参照できるように変えれば可能だと思います。 #!/usr/local/bin/perl -c 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); $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; # 記録するデータをsjisにする jcode::convert(\$name,'sjis'); jcode::convert(\$value,'sjis'); push(@kakunou, "$name\t$value"); } open (OUT, ">$file") || die; print OUT "@kakunou"; close(OUT); これで$fileに指定したデータファイルにデータが\t区切りで格納されます。 あとは、cgiのforeachループなどでデータを取り出し結果表示します。 |
返信(回答)する
Web裏技 |