WEB相談室

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

タイトル:タグを解釈してくれない!

0:[投稿] タコですいません [2002/12/04 10:31 ][環境:UNIX系+NN UNIX系+Perl]

 VineLinux2.6でPerl5とMozilla1.1を使ってcgiを書いているのですが、
print "<Content-type: text/html; charset=Shift_JIS>\n\n";
print "<HTML>\n";
print "Hello.\n";
というcgiを実行するとブラウザには、
<HTML>
Hello.
というようにタグもろともそのまま表示されてしまいます。他のタグについても同様で、どうもタグをタグであると解釈してないようです。しかしcgiではなくただのindex.htmlファイルに同じ記述をしてブラウザで表示させると、Hello.だけが正しく表示されます。因みにWindows環境でIE5.5を使っているときは問題なく表示されますが、Netscape4.75を使うとやはりタグがそのまま表示されてしまいます。
 この原因はcgi側にあるのでしょうか、それともブラウザ側にあるのでしょうか。初歩的な質問で恐縮ですがどなたかご教示くださいますようお願いします。



1:[回答] ちゃいぱ [2002/12/04 10:54 ]

>print "<Content-type: text/html; charset=Shift_JIS>\n\n";
print "Content-type: text/html; charset=Shift_JIS\n\n";
とか。


2:[回答] アクア [2002/12/04 11:37 ]

一番上にはパス書いてありますか?
#!usr/local/bin/perlなど環境によっても変わりますが・・
もし書いているのでしたら

#!usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<html>\n";
print "<body>\n";
print "Hello\n;
print "</body>\n";
print "</html>\n";

上記のようにしてみてください。
多分bodyが抜けているか、htmlを閉じていないとかそんなところではないですか?
上手く行かないようでしたら今一度勉強しなおしてみてください。
意外と足元で答えが転がってます(自分がそうだったから^^;)
http://www2a.biglobe.ne.jp/~gonta/cgi00.htm
最後に勉強するにあたって便利な教科書?
みたいなURL置いておきます。では


3:[回答] アクア [2002/12/04 11:55 ]

Netscapeでって事でしたか^^;
でしたらちゃいぱさんと同じくかpmを使ってみるとか・・・
でもCGIはServerでの処理になります。クライアントで動いてくれるのが確かjavaスクリプトだったはず(曖昧・・・)
ですのでServer側か後は記述での問題です。
ブラウザでは何も問題は無いと思われます。
http://wp.netscape.com/ja/eng/server/enterprise/2.0/Admin_08.html

http://osaka.cool.ne.jp/katsuwo/old-fb4.2-guide/06_3.html
が何らかの手がかりになるのではないのでしょうか?


4:[関連] ひじ [2002/12/04 12:18 ]

すでに回答が書かれているので、回答はそちらに任せますが、
ブラウザ側の挙動としては、Netscape4.75/Mozilla1.1の挙動が正しいです。IE5.5の動作は変です。>>0のCGI出力をHTMLと勝手に決め付けてはいけません(有名なバグです)。

>#!usr/local/bin/perl
フルパスで指定する必要があります。
#!/usr/local/bin/perl

>多分bodyが抜けているか、htmlを閉じていないとかそんなところではないですか?
HTML4.01では開始・終了タグとも省略可能です。


5:[完了] タコですいません [2002/12/04 23:47 ]

ちゃいぱさん、アクアさん、ひじさん、貴重なアドバイスをどうも有難うございました。さっそく教えていただいたようにやってみたところ、
print "Content-type: text/html; Charset=EUC-JP\n\n";
の記述でうまく動作してくれました。不良の原因は、
Content-type: text/html; Charset=EUC-JP\n\n
を < と > で括って、
<Content-type: text/html; Charset=EUC-JP\n\n>
としていた点にありました。全くお粗末な不注意によるものでした。
タグの閉じ忘れも試してみましたが、私の環境では閉じ忘れても上手く動作してくれました。
今にして思えばこんな初歩的なことでみなさんの手を煩わせてしまって非常に恐縮です。と同時に、初めて訪れたサイトでこんなに親切に教えて頂いて、本当に感謝の気持で一杯です。
現在はVineLinux2.6でApache1.3.27+modSSL2.8.12-1.3.27にOpenSSL0.9.6gをコンパイルして入れて、節約のために自前の証明書を発行してSSL対応の環境を作っています。Postfixという素晴しいMTAを使いたくて、生まれて初めてLinuxの世界に足を踏み入れております。(私にとっては)深刻な悩みが解決して今夜はぐっすり休めそうです。有難うございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World