CGIにパラメータを2つ渡すには?
[上に]
[前に]
[次に]
マロン
1999/09/16(木) 02:51:16
CGIにNAME=VALUEの組み合わせで2つパラメータを
渡したいと思い、以下のように記述しました。
sub afterr {
print "Content-type: text/html\n\n";
print "<html><head></head>\n";
print "<frameset rows=\"72%,*\"BORDERCOLOR=\"pink\">\n";
# print "<frame src=\"hisenter.cgi?mode=enter+errcom=$comment target=\"_self\" name=\"top_w\">\n";
print "<frame src=\"hisenter.cgi?mode=enter target=\"_self\" name=\"top_w\">\n";
print "<frame src=\"hisdsp.cgi\" name=\"down\" marginwidth=4 marginheight=4>\n";
print "</frameset>\n";
print "</html>\n";
}
このままmode=enterで実行するときちんと処理を行うのですが、この行をコメントにして
print "<frame src=\"hisenter.cgi?mode=enter+errcom=$comment target=\"_self\" name=\"top_w\">\n";
のコメントをはずすと「ドキュメントにデータが含まれていない」というエラーが出ます。
$commentの中に実際に渡したい値が入っています。
どう直せば良いか教えていただけないでしょうか。
B-Cus
1999/09/16(木) 02:58:58
> ?mode=enter+errcom=$comment
?mode=enter&errcom=$comment ってことかね。
ところで
「こーゆー読みにくい書き方はやめて、
print <<END
<frame src="hisenter.cgi?mode=enter+errcom=$comment target="_self" name="top_w">
END
とか、
print qq{<frame src="hisenter.cgi?mode=enter+errcom=$comment target="_self" name="top_w">\n}
などと書こう!」
という運動に賛同していただけません?
猫
1999/09/16(木) 03:14:05
関係ないのかも知れませんが
src=\"hisenter.cgi?mode=enter+errcom=$comment\"
としないのはなぜ?(")ね。
あとデリミタが+なのは何故ですか?
単純に&にすればいいのに・・・。
デコードするときにスペースになるとかいう問題は考えられない?
どれも処理場の都合でしたらすいません。
マロン
1999/09/16(木) 16:44:13
[[解決]]
ありがとうございました。
確かに読みにくいですね。
src=の後の¥”、付け忘れました。
で、&ですが、デリミタ&でデコードしているにもかかわらず、
なぜか「コマンドライン引数で渡すときは
http://...../cgi-bin/xxx.cgi?引数1+引数2」
という記述を見て、区切りを+にしなければならない、と思い込みました。
どうもあせりすぎていたようです。
ありがとうございました。
[上に]
[前に]
[次に]