![]() |
カレッヂ |
質問者 ルヒア
投稿日 8/3(日) 18:42:24
自分のページをCGIでヒアドキュメントを使い表示させようとしましたが うまくいかず、なんとかエラーが出る部分を抽出する所まで至りましたが そこから先に進めず、投稿させていただきました。 なんとか皆様のお力添えお願いいたします。 エスケ−プが必要なのはと思い 『"』の他にも、『\』自身や『,』や『.』、『@』、『$』にも試してみましたが ダメでした ↓がソースです、よろしくお願いします。 #!/usr/local/bin/perl $html = ' <HTML> <HEAD> <TITLE></TITLE> <BODY></BODY> <FORM ACTION="http://hogehoge.com/yomi-search/search.cgi" METHOD=GET TARGET=_blank window=_blank name="form1"> <CENTER> <INPUT TYPE=HIDDEN NAME="mode" VALUE="search"><INPUT TYPE=HIDDEN NAME="page" VALUE="1"> <INPUT TYPE=HIDDEN NAME="sort" VALUE="$EST{defo_hyouji}"> <INPUT TYPE=TEXT NAME="word" SIZE=30 ID="word"> <INPUT TYPE=SUBMIT VALUE=" 検 索 "> <INPUT TYPE=RESET VALUE="リセット"> <SELECT NAME="method" ID="method"> <OPTION SELECTED VALUE="and">AND(すべての語を含む) <OPTION VALUE="or">OR(いずれかの語を含む)</SELECT><SELECT NAME="engine" ID="engine"> <OPTION SELECTED VALUE="google">Googleで <OPTION VALUE="pre">ホゲホゲエンジンで <OPTION VALUE="yahoo">Yahoo!で <OPTION VALUE="infoseek">Infoseekで <OPTION VALUE="goo">gooで <OPTION VALUE="lycos">Lycosで <OPTION VALUE="inetguide">iNET Guideで <OPTION VALUE="excite">Exciteで <OPTION VALUE="joy">J.O.Y.で <OPTION VALUE="csj">CSJ What's Best!で <OPTION VALUE="FRESHEYE">フレッシュアイで <OPTION VALUE="InfoNavigator">InfoNavigatorで <OPTION>----------------- <OPTION VALUE="com">.com で <OPTION VALUE="cojp">.co.jp で</SELECT></CENTER> </FORM> </HTML> '; print "Content-type: text/html\n\n"; print <<END; $html END exit;
プロバイダ参照:自サーバーでテスト |
回答者 しあわせのツボ
[削除]
投稿日 8/3(日) 20:31:27
ヒアドキュメントの使い方としてはかなり間違っていますが、 文法的には動作するはずです。 おかしいなと思い調べてみたら…ありました。 > <OPTION VALUE="csj">CSJ What's Best!で ここで ' が使われているためです。 ついでに、シングルクォートを使っているので > <INPUT TYPE=HIDDEN NAME="sort" VALUE="$EST{defo_hyouji}"> が変数展開されません。たぶん期待する動作にはならないでしょう。 更に、</body>の後に内容を書くのもHTMLとして正しくありません。 正しいヒアドキュメントの使い方としては $html = <<"END"; なんのかんの END その先があって print $html; になります。 最初の"END"をダブルクォートで囲めば変数展開され、 シングルクォートにすれば$や@などを変数展開せずそのまま表示します。 |
質問者 ルヒア
[削除]
投稿日 8/3(日) 21:00:14
しあわせのツボさん御指摘ありがとうございます。 返答が来るまでに2〜3日を想定しておりましたので 夕食を終えて覗いてみたら、返答があって、とても嬉しいです。 早速指摘されたとおりに作り直してみました ところ正常に動作しました。ありがとうございます。 ↓が作り直したソースです。 #!/usr/local/bin/perl $html = <<'END'; <HTML> <HEAD> <TITLE></TITLE> <BODY> <FORM ACTION="http://hogehoge.com/yomi-search/search.cgi" METHOD=GET TARGET=_blank window=_blank name="form1"> <CENTER> <INPUT TYPE=HIDDEN NAME="mode" VALUE="search"><INPUT TYPE=HIDDEN NAME="page" VALUE="1"> <INPUT TYPE=HIDDEN NAME="sort" VALUE="$EST{defo_hyouji}"> <INPUT TYPE=TEXT NAME="word" SIZE=30 ID="word"> <INPUT TYPE=SUBMIT VALUE=" 検 索 "> <INPUT TYPE=RESET VALUE="リセット"> <SELECT NAME="method" ID="method"> <OPTION SELECTED VALUE="and">AND(すべての語を含む) <OPTION VALUE="or">OR(いずれかの語を含む)</SELECT><SELECT NAME="engine" ID="engine"> <OPTION SELECTED VALUE="google">Googleで <OPTION VALUE="pre">ホゲホゲエンジンで <OPTION VALUE="yahoo">Yahoo!で <OPTION VALUE="infoseek">Infoseekで <OPTION VALUE="goo">gooで <OPTION VALUE="lycos">Lycosで <OPTION VALUE="inetguide">iNET Guideで <OPTION VALUE="excite">Exciteで <OPTION VALUE="joy">J.O.Y.で <OPTION VALUE="csj">CSJ What's Best!で <OPTION VALUE="FRESHEYE">フレッシュアイで <OPTION VALUE="InfoNavigator">InfoNavigatorで <OPTION>----------------- <OPTION VALUE="com">.com で <OPTION VALUE="cojp">.co.jp で</SELECT></CENTER> </FORM> </BODY> </HTML> END print "Content-type: text/html\n\n"; print $html; exit; |
返信(回答)する
Web裏技 |