アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のサブルーチンを記述したらエラーになります。
どこか間違っておるのでしょうか?
宜しくお願いします。

#-------------------------------------------------

sub head {

print <<"EOM";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>メールフォーム</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
EOM
}

#-------------------------------------------------

A 回答 (2件)

考えられるエラーの原因は次の2点ですね。


(1) EOM の前にスペースがある
(2) サブルーチンの呼び出し方が間違っている
  head();

それと、ヒアドキメントを使うなら、Content-type: text/html\n もその中に入れれば良いのでは、、、
print <<"EOM";
Content-type: text/html\n
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    • good
    • 0

これをブラウザで表示したいのでしょうか?


でしたら最初に
print "Content-type: text/html\n\n";
が必要ですが、他のルーチンで入っていますか?
それであれば問題ないように見えますが、どんなエラーが出るのでしょうか?

この回答への補足

返答をありがとうございます。
「print "Content-type: text/html\n\n";」を付け忘れました。

変更前は以下です。

$html_head = '<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body bccolor=#fafafa color=#222222>
'; # ← この行は消さない


#-------------------------------------------------

ssub head {
print "Content-type: text/html\n\n";
print "$html_head";
}

#-------------------------------------------------

これを下記に変更しました。

sub head {

print "Content-type: text/html\n\n";

print <<"EOM";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"?http://www.w3.org/TR/html4/loose.dtd">?
<html>
<head>
<title>メールフォーム</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
EOM
}

結果「500エラー」が出ます。
一行ずつprintにすればいいと思うかもしれませんが、それも分からないんです…
すみませんが、宜しくお願いします。

補足日時:2009/07/01 16:55
    • good
    • 0

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