-PR-
解決済み

htmlを含まないphpファイルにもHTMLヘッダー内にエンコード形式を記述する必要はあるのでしょうか?

  • 困ってます
  • 質問No.3349981
  • 閲覧数197
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 58% (353/606)

私はフォームにデータを入力するファイル(enter.html)、それをチェックするファイル(check.php)及びデータをメールで送信するファイル(mail.php)を分離しています。

これらのファイルの内、ブラウザーにファイル内のHTMLコードが出力されるのは、データを入力するファイル(enter.html)だけです。

入力されたデータをチェックするファイル(check.php)及びデータをメールで送信するファイル(mail.php)は、phpのechoを使用して、入力エラーがあったり、メールが送信された場合にその旨のメッセージをブラウザーに表示しますが、HTMLは含みません。

そのため、データを入力するファイル(enter.html)には、<meta http-equiv="Content-Type" content="text/html; charset=utf-8">とエンコード形式(UTF-8)をHTMLヘッダー内に記述しているのですが、htmlを含まないphpファイル(check.php及びenter.html)にも<meta http-equiv="Content-Type" content="text/html; charset=utf-8">などのようにHTMLヘッダー内にエンコード形式を記述する必要はあるのでしょうか?

よろしくお願いします。

キャサリン
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル8

ベストアンサー率 45% (14/31)

結論から言うと、書く必要があります。

PHPがレスポンスを返す場合、何も指定がなければ、
PHPが自動的にhttpヘッダー(HTMLのヘッダー部やmetaタグではない)に
"Content-Type:text/html"を付加して送信します。
ブラウザ側はそのhttpヘッダー情報を読み、html文書であると解釈して
echoやprintで出力された文字列を表示します。
metaタグもなくHTMLの書式でもない文字列がまともに表示されるのは
ブラウザがHTML文書だと解釈して足りない部分を補完してくれる機能があるからです。
文字コードについても同様に(単なる文字列にはエンコード指定がないため)
ブラウザが独自に判断して「たぶんこれ」と思う文字コードで解釈します。

httpヘッダーについては自動で付加("Content-Type:text/html"の場合)されるので
意識する必要はありませんが、ユーザー側のブラウザにHTML補完機能や
エンコード自動解析の機能が必ず備わっていると期待するべきではありません。
WEB標準(が確立されているかどうか微妙ですが)に準拠したHTML文書を送信するのが無難でしょう。

function html_message( $msg = "" )
{
print <<<HERE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Message</title>
</head>
<body>
 $msg
</body>
</html>
HERE;
}
私の場合上記のような関数をつかう等しています。
お礼コメント
kitty1000

お礼率 58% (353/606)

utano_mさん

ご回答ありがとうございました。
良く理解できました。

キャサリン
投稿日時 - 2007-09-17 13:33:07
-PR-
-PR-
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

-PR-

ピックアップ

-PR-
ページ先頭へ