WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:CGIファイルの記述がそのまま表示されてしまう。

0:[投稿] モンチー [2008/07/01 21:19 ] [環境:− WindowsXP FireFox 2.0.0.14]

すみません。教えてください。

Windows上(Apach2.2 + Perl)でCGIの作成を勉強し始めたのですが、いきなり躓いてしまいました。
簡単なCGI(「Hello Perl」と表示されるだけもの)を作成し、ブラウザからアドレス指定(http://localhost/cgi-bin/Test.cgi)で実行すると、きちんと実行されるのですが、このスクリプトをHTMLから「From Action」で呼び出すと、ファイルの中身がブラウザ上に表示されてしまいます。
いろいろ調べると、httpd.confにOptions ExecCGIを足すなどの情報を見かけたのですが、そういう問題でしょうか?
(httpd.confの編集はやってみたのですが、変わりませんでした)
どなたかご教授ください。
よろしくお願いいたします。


1:[回答] てけてん [2008/07/02 17:53 ]

ファイルの中身が表示される時に、ブラウザのアドレス欄は、どのようになっているのかを確かめて下さい。
file:///〜/cgi-bin/Test.cgiではありませんか?
(例えば、file:///E:/www/xxx/public_html/cgi-bin/Test.cgi)
<form>のactionのパスが、http://localhost/cgi-bin/Test.cgiになっているかを確かめて下さい。

また、相対パスで記述してある場合は、フォームを記述しているhtmlファイルも、http://localhost/からのURLで呼び出す必要があります。
htmlファイルをダブルクリックなどしてFirefoxで表示すると、アドレス欄は、file:///からのアドレスになるので、CGIスクリプトもfile:///から始まるアドレスで呼び出すことになります。
その為、FirefoxとOperaでは、ソースの中身が表示されることになります。


2:[回答] モンチー [2008/07/02 18:23 ]

てけてんさん、ご回答ありがとうございます。

おっしゃるとおり、ブラウザのアドレス欄には
「file:///・・・・・」と表示されておりました。
htmlのActionの記述は「../cgi-bin/Test.cgi」となっていたため、
http://localhost/cgi-bin/Test.cgi」に変更したところ、
中身ではなく結果が表示されるようになりました。

また、htmlは「../cgi-bin/test.cgi」のままでも、
ダブルクリックで呼び出さずに、http://localhost/からのURLで
呼び出したところ、きちんと結果が表示されました。

HTMLを呼び出す方法とcgiのパス指定にそんな関係があることを
知りませんでした。

本当に助かりました。ありがとうございました。


3:[完了] モンチー [2008/07/07 14:34 ]

すみません。
完了し忘れました。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]