CGI-BBS > CGI > Perl > NNでソースがそのまま表示


カレッヂ
カレッヂ


質問者 ぴらおか  投稿日 8/7(火) 20:58:27
URLのなかで引数を指定してCGIスクリプトに渡す方法を使っています。
(<..../hoge.pl?arg1=value1&arg2=value2">みたいに)
しかしそのあと、なぜかスクリプトによって整形されたHTMLソースが
ブラウザ上にそのまま出てしまいます。
しかもIEでは期待通りのブラウザで解釈して出力されるのですが
NN(4.72)ではソースのままです。
.htaccessとかの設定が必要なのでしょうか?
ご教授お願いいたします。
回答者 しあわせのツボ  [削除]  投稿日 8/7(火) 22:53:19
ヘッダ"Content-type: text/html\n\n"は出力していますよね?
質問者 ぴらおか  [削除]  投稿日 8/8(水) 13:36:47
えーと、「そのまま出力されているHTMLソースのなかに
"Contetn-type"..の文が出力されているか」ということでしょうか?
それでしたらNOです。
いきなり<html><body>..という文章が出力されています。
質問者 ぴらおか  [削除]  投稿日 8/8(水) 14:06:29
すみませんわかりました。
"Content-type: text/html"が"Content_type: text/html"と
ハイフンがアンダーバーになっていました。
ポカミスです。しあわせのツボさんありがとうございました

(IEだと柔軟に対処してくれるのに・・NNのわからずや!ブツブツ・・)
回答者 しあわせのツボ  [削除]  投稿日 8/8(水) 14:21:02
ヘッダ部分はブラウザからソースを見ても見えません。
プログラム上で最初にprintされるものが
Content-type: text/html(改行)
(改行)
なのか、いきなり<html>から始まっているのか、です。

拡張子が.htmlやら.jpgやらであれば、そのデータの中身が何であるかは了解事項のため、ブラウザはそれを前提に処理できますが、拡張子.plはどのようなデータを返してくるのかが予想できません。
意味不明なデータを送られても、ブラウザはそれをどうすればいいのか困ってしまいます。
なので、スクリプトから「今から送るデータはhtmlだからね」といった情報をブラウザに教える必要があります。その役割を果たしているのが、このヘッダ部分です。

IEは大嘘を書いても何とかしてくれることが多いですが、Netscapeはあまり補正しません。もちろん間違いを書いた方が悪いので、Netscapeを責めてはいけません。
回答者 しあわせのツボ  [削除]  投稿日 8/8(水) 14:22:34
あら。ゆっくり回答を書いていたら、解決済みでしたか。失礼。
質問者 ぴらおか  [削除]  投稿日 8/8(水) 14:31:23
回答ありがとうございます!

>Netscapeはあまり補正しません。
>もちろん間違いを書いた方が悪いので、Netscapeを責めてはいけません。

ウウ・・まったくそのとおりですね。
滝に打たれて勉強しなおします(TT)

返信(回答)する


Web裏技