CGI-BBS > CGI > Perl > Perlで出力したHTMLソースがNetScapeで表示されない


カレッヂ
カレッヂ


質問者 すみれ  投稿日 7/13(金) 15:02:49
超初心者な質問かもしれないんですけど、すみません。
PerlのプログラムからHTMLのコードを出力しますよね。IEでは正常に表示できるのですが、NetScapeのブラウザだと、HTMLのソースコードが表示されてしまいます。IISのWWWサーバーではIE,NetScapeともに表示できていたので、公開サーバー(Unix:レンタルしています。)にupしたんですけど、UnixではNetScapeで表示できません。なにかご存知の方がいらっしゃったらおしえていただけないでしょうか?ちなみにソースコードは、
print <<"HERE";
Content_type: text/html


<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>netscape</BODY>
</HTML>
HERE
と記述しています。
回答者 しあわせのツボ  [削除]  投稿日 7/13(金) 15:52:55
Content_typeではなくContent-typeにして下さい。
質問者 すみれ  [削除]  投稿日 7/13(金) 16:05:25
しあわせのツボさん、ありがとうございました。さっそくやってみます。
質問者 すみれ  [削除]  投稿日 7/22(日) 17:37:57
Content-type
と記述して試してみました。しかし・・・やっぱりnetscapeではソースが表示されてしまいます。
私が作ってみたソースは、
#!/usr/local/bin/perl

#        初期設定
        require 'cgi-lib.pl';

#        おまじない
        $ |= 1;

print <<"HERE";
        Content-type: text/html



        <HTML>
        <HEAD>
                <TITLE></TITLE>
        </HEAD>
                <BODY>あつい・・・
                </BODY>
        </HTML>
HERE

        return;

です。なぜなのか、ご存知の方、よろしくお願いします。
回答者 のりくん@謎謎謎  [削除]  投稿日 7/22(日) 23:23:52
print <<"HERE";
の中に記入するのではなく、その前の行に
print "Content-type: text/html\n\n";
としてみたらどうでしょう?
回答者 しあわせのツボ  [削除]  投稿日 7/22(日) 23:38:47
うちではヒアドキュメントで問題なく表示できています。
Content-typeの前にスペースが入っていませんか? 入っていたら取り除いてみて下さい。
質問者 すみれ  [削除]  投稿日 7/26(木) 10:52:35
お返事遅くなってごめんなさい。ずっとPCのないとこにいたもので・・・
のりくん@謎謎謎さんが教えてくださった、print "Content-type: text/html\n\n";という方法は試してみました。でも結果は同じでした・・・ぐすん。
しあわせのツボさんのご指摘の通り、ソースを見やすくするために、print <<"HERE";内のソースにはTABをいれています。それがいけないんでしょうかねぇ?NetScapeだと変に解釈されちゃうのかしら?試してみます。

私もいろいろ試してみて、
<META name="GENERATOR" content="abc">
とかのタグをいれるとうまくいったり、
<META name="GENERATOR" content="abc">
<META http-equiv="refresh" content = "0;url=http://www.abc.ne.jp/">
と追加してみるとうまくいかなかったり・・・、なんだかよくわからないのです。

content-typeの前の空白を削除する方法、試してみますね。おふたかた、ありがとうざいました。

返信(回答)する


Web裏技