setcookie() で「Warning: Cannot modify header information - headers already sent by ...」が発生する
2017/7/1
文書番号:20745
php から cookie に値をセットするために setcookie() メソッドを使用したところ、以下のエラーが発生しました。
==================================================================
Warning: Cannot modify header information - headers already sent by ...
==================================================================
php のマニュアルを参照したところ、以下のような記述がありました。
setcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。 ほかのヘッダ情報と同様に、 クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。 や タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。
PHP マニュアル
setcookie
ということで、<html> より前(ページの先頭)に記述することでエラーなく保存することができました。