作成したソースがFirefox上でテキストとして表示されてしまいます。
Live HTTP headersで見るとContent-Type: text/plain; charset=EUC
となってしまうのです。
IEではきれいにhtmlとして表示されています。
とりあえず
1.print "Content-type: text/html\n\n";とソースの一番上に書いても、テキストとして表示されるだけ。IEでもContent-type: text/htmlと表示されてしまっている。
2.Apacheの設定が悪いのかと思ったが自分が作った以外の同じサーバの他のソースでは同じ拡張子、しかもContent-type: text/htmlなしですらFirefoxでtext/htmlとして表示されている。(Live HTTP headers上でも)
Webを検索してもprint "Content-type: text/html\n\n";を一番上に書きなさいとぐらいの情報しか探せず手づまりな状況です。
なにか思い当たることのある方何でも結構ですので教えてください。
1.ftpでアップロードしていると思いますが、asciiモードで転送してますでしょうか。改行コードがCR+LFだったりすると、そういう問題を起こすかもしれません。
2.(無料提供などでありがちな)広告自動挿入されるサービスだと、適切な対処はサーバ管理者側に聞かないといけないかもしれません。
3.cgiとして実行されないのだとすると、「.htaccess」への記述が足りないのかもしれません、CGI を有効にするにはをどうぞ。
print "Content-type: text/html\n\n";
の部分を、
print "Content-type: text/html; charset=EUC-JPS\n\n";
と書き換えてみてください。
いかがでしょうか?
やはり同じでした。EUC-JPSはEUC-JPでよいのですか?
あとIEでもContent-type: text/html; charset=EUC-JPSとそのまま表示されるのが解せないところです。
決定打はないのですが、以下の4つくらいが考えられます。
1.CGIソースファイルを置いているディレクトリがCGIを実行できない場所である。
2.CGIソースファイルのパーミッションを755にしてみる。
3.print "Content-type: text/html\n\n";の行を下の4行にしてみる。(3行目は空行です)
print <<"END";
Content-Type: text/html
END
4.print "Content-type: text/html\n\n";を一回消して再度入力してみる。
この時コピペしてはいけません。どうみても動きそうなのに動かないときは見逃しがちな入力間違いをしてる場合があります。入力し直してみると以外と動いたりします。
すいません。今日は自宅なので試せませんが。
1.ディレクトリ自体は見てませんでした。プログラム自体の実行権限はなども確認したんですが。見てみます。IEで表示されるので微妙ですが。
2.設定済みです。
3.一応試してみたいと思います。
4.やはりその可能性も捨てきれませんね。試してます。
他にも何でもよいのであればご指摘ください。
1.確認しても駄目でした。viで開いて改行を入れて書き込みしてみたんですが。
2.自社内のLAN内のサイトです。
3.Apacheは他のソースが実行されてることで問題ないと思われます。