HOME >> Tips >> PHP

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> より前(ページの先頭)に記述することでエラーなく保存することができました。