人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP 4.3.9.x
CentOS 4.6

を使用しています。


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

とあります。

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

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

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

●質問者: caster777
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:BOM CentOS cookie HTTP PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● zebevogue
●60ポイント

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

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

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

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

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

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

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

参考になれば幸いです。

◎質問者からの返答

ありがとうございます。

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ