PHP 4.3.9.x

CentOS 4.6

を使用しています。


通常、COOKIEやSESSIONを使用する場合、マニュアルにもあるように、
setcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。 ほかのヘッダ情報と同様に、 クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。 <html> や <head> タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。

とあります。

ですので、
UnicodeSignのBOMコードを付加すると、最初にBOMが出力されてしまい、
正常な動作は望めないような気がします。

しかし、BOM付きのソースを実行したところ、
正常に動作するときとしないときがあるのです。

正常に動作するときの要因はいったいなんでしょうか??

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/02/15 20:10:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:zebevogue No.1

回答回数65ベストアンサー獲得回数7

ポイント60pt

The elephant vanishes PHPがBOM付きUTF-8をうまく処理してくれない件

によるとバグだそうです。

[PHP-users 12229] Re: bomつきutf-8 ファイルでのheader によるリダイレクト

上記のページに以下のような記述がありましたので引用します。

BOM のご利益としては、もしかしたら、Unicode だと判定するときの材料となるかもしれない

推測で申し訳ないですが、Unicodeと判断された場合には正常に動作するのかも知れません。

私自身はBOM付きでは作成する事はありませんし、Unicodeの判断はheader()を使ったりしますので、正確にはわかりません。

参考になれば幸いです。

id:caster777

ありがとうございます。

BOM出すとよくないのはわかっているんですが、

正常に動くときもあったりするので、

すごく気持ち悪いなと思い、質問しました。

2008/02/12 14:52:57

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません