• 締切済み

fireFoxブラウザでcgiで生成したソースがそのまま表示されてしまう

先駆者の皆様、こんばんわ。firefox(ブラウザ)に関するもので、困り果てております。分かる方が居られるかも疑問ですが、皆様のお知恵を拝借させて頂けたら、幸いでございます。 質問は「FireFoxブラウザで特定のcgiのみ、htmlソースがそのまま出力されてしまう」です。 見て頂くのが一番、分かりやすいと思いますので、以下にその掲示板へのリンクを張らせて頂きます。FireFoxをお持ちの方は見てみて下さい。(※1)ソースがそのまま出てますよね。 ※1問題の掲示板 http://www.chibamania.com/cgi-bin/bbs2/index.cgi?ac=ichikawasi_gyoutoku ・サーバー上で正常に動作しているプログラムもある ・IEだと正常に表示される ・一度htmlとして保存したものは表示される。 まず、IEでは正常に表示されるので、htmlの解釈の違いかなと思いました。でもそれにしては、表示されたソースをコピペしてhtmlとして作成したものはFireFoxでも問題なく見れるのです。(※2) ※2表示されたHTMLを設置(同じサーバー、同じ階層) http://www.chibamania.com/cgi-bin/bbs2/a.html 掲示板のperlのソースはケントウェブさんからお借りしたもにに少しだけ修正したものを使ってます。同じ症状で苦しんでいる方は居られますか? とても難解な問題なため、ここですぐに答えがいただけるとは思えませんが、ワラをも掴む思いで質問しました。どうか情報をください。宜しくお願い致します。

みんなの回答

noname#19206
noname#19206
回答No.3

FireFoxではなくFirefoxです。これはよく公式フォーラムなどで注意されることがあります。 http://www.mozilla-japan.org/support/firefox/faq#spell-abbreviate リンク先でページのソースがそのまま表示される原因は確か、出力形式が原因です。 text/htmlとして出力しなければ正しい表示が行われません。

参考URL:
http://www.mozilla.gr.jp/standards/webtips/webtips0037.html
mahouchan
質問者

補足

そのあたりはKENT-WEBさんからお借りしたソースなので万全だと思うのですが。。検証してみますね。Firefoxは小文字のときもあるし、日本ではどっちでも良いような気もしますが、できる限り気をつけるようにします。

すると、全ての回答が全文表示されます。
noname#86752
noname#86752
回答No.2

私はcgiの経験はありませんが・・・ #1さんのソースにある print "Content-Type: text/html\n\n"; に相当する文はあるのでしょうか? ブラウザはこの部分でどう表示すべきか判断していると思います。(送られてきたデータの中身ではなく)

mahouchan
質問者

補足

しっかり書かれているのに動かないということは。。 そこですね。改行コードの違い、などでしょうか。 わかったらご報告いたしますね。

すると、全ての回答が全文表示されます。
  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

まず、PerlのCGIは正常に動いているようです。 ※printではき出されたhtmlがそのままtextで表示されていますが… まず、私が普段使用しているPerlスクリプトと比較してみて下さい。 ↓ここから #!C:/Perl/bin/Perl print "Content-Type: text/html\n\n"; print "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n"; print "<HTML>\n"; print "<HEAD>\n"; #ブラウザにキャッシュさせないらしい print "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; print "<META HTTP-EQUIV=\"Content-Type\" content=\"text/html; charset=x_sjis\">\n"; print "<meta name=\"GENERATOR\" content=\"Microsoft FrontPage Express 2.0\">\n"; print "<TITLE>テスト</TITLE>\n"; print "</HEAD>\n<BODY BGCOLOR=\"#CCCCFF\">\n"; ↑ここまで 2行目の空行は重要だったりします。

mahouchan
質問者

お礼

動作しました。 原因は print "Content-Type: text/html\n\n"; を記述する前に、外部ファイル読み込み時にその中の関数で文字列を出力してしまっていたからでした。その文字列自体は出力されてなかったので、見つかり辛かったです。 というわけで、 print "Content-Type: text/html\n\n"; をする前に文字列を出力していたため、firefoxが判別を間違えていた、ということでした。 ありがとうございました。

mahouchan
質問者

補足

返信ありがとうございます。 print "Content-Type: text/html\n\n"; は毎回、定型文章として使ってます。 そして今回も当初のソースから修正していないので、大丈夫だと思うのですが。。しかし、HTMLが問題ないとなると、怪しいのはやはりそこですよね。。 2行目の空白、というのはperlスクリプトの中の改行ということでしょうか?ふむ、意味があるのかな。。でもやってみますね。 それでだめなら、ソースを部分的にカットしていって実行、カットして実行、これで検証していくしかなさそうですね。。

すると、全ての回答が全文表示されます。

関連するQ&A