PHPでsetcookieをすると、警告「Warning: Cannot modify header information – headers already sent by …」がでる場合




久しぶりにやったらハマったのでメモ。PHPでsetcookieを使う場合、「Warning: Cannot modify header information – headers already sent by …」という警告が出る場合があります。

setcookie関数より前に、echoやhtml文などで出力するとでる警告みたいです。

PHPマニュアル setcookieより
https://www.php.net/manual/ja/function.setcookie.php

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

セッションを削除したりしたい場合、下記のように回避すると良いかと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です