プロが教えるわが家の防犯対策術!

これの意味と直し方を教えていただけませんか?
いろいろ調べたのですが、意味も理解できないんです。

ヘッダーがないってことらしいんですが、どこに書いたらいいのか解らず困っています

どなたかご教示お願いします。

あと、こんなエラーも出ました

Attempt to free unreferenced scalar at /usr/local/apache2/htdocs/***.cgi line 75., referer: http://***.***.jp/***.cgi

***.cgiは、上記ソースの物です。
宜しくお願いします。

A 回答 (2件)

>print<<"EXIT";



上記の意味するところは””内の文字のみが書かれている行が現れるところまでの文字を一気に画面に表示するという意味です。(ヒアドキュメント表示といいます。Googleなどで検索してみて下さい)
先程の例で言えば、
<html>
.......
</html>
までの文をブラウザに対して表示、すなわちページを一気に表示できるというわけです。
ですので””の中は EOLだろうが、EXITだろうがかまわないのです、が・・・・問題が1点。
EXITはCGIのexit関数と見間違えるので、
他の言葉にした方が良く、意味のある「段落の終わり」という意味で私は "EOL"を使っています。(End Of Line)
多分、EXITというのがまずいのではないでしょうか?
一回、その部分を EOL に変えてみては?
EOL という文字は、1行単独で存在する必要があります。
(他の文字は一切入れない)

参考URL:http://www.tohoho-web.com/wwwcgi.htm
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
EXITをEOLに変えて、教えていただいたページを熟読して、ソースを見直したら正常に動きました。

本当に助かりました。

ありがとうございました。

お礼日時:2005/10/30 03:22

CGIスクリプトからブラウザに吐き出すときに、


コンテントタイプがきちんと指定されていないのではないでしょうか。
print<<"EOL";
Content-Type:text/html

<html>
<head>
<title>サンプル</title>
</head>
<body>
サンプル
</body>
</html>
EOL

Content-Type:text/html行のすぐ下に
空の行(改行のみ)を入れておきます。
(ヘッダと本文を分けるセパレータの役目をします)

この回答への補足

アドバイスありがとうございます。
cgiの内部を調べたのですが、
print<<"EOL";ってところが無く、print<<"EXIT";
なら有ったのですが同じでしょうか?

サンプルで記載していただいたものは、ちゃんと表示できました。

よろしければ、再度教えていただけないでしょうか?

補足日時:2005/10/26 12:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!