勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

setcookieで「Cannot modify」エラー

   

PHPでsetcookieを使うと「Warning: Cannot modify header information」みたいなエラーが出て、cookieが保存されなかった。自分のサーバでテストした際は問題なく、本番用の他社所持サーバで発生した。

リファレンスを確認すると「setcookie()は、あらゆる出力よりも前に送信される必要があります」との記載あり。

 

■リファレンス

http://php.net/manual/ja/function.setcookie.php

 

プログラムだけなら書き換えるだけで済むんだけど、既に公開されているWordPressで、cookieはプラグインの一部で使っており、色々入れ替えとなるとややこしそうだった。

解決策として以下記述をしたphp.iniファイルをサーバにアップすることで対応できた。

自サーバとかでphp.iniファイルを直接弄れるのであれば、そちらを編集すればOK。

本来であればsetcookieの前にhtmlなりの出力がされるところを、バッファに溜め込むことで回避しているっぽい。ただ、けっこう無理やり感があるので、header関数と同じくsetcookieも頭に書かないといけないというのは覚えておく。

 - PHP

  関連記事

PHPで複数の送信先に一括でメールを送る方法

PHPで複数の送信先に一括でメールを送信したかった。配列とかで指定するのかと思っ ...

フォームからCSVファイルをアップロードしてPHPの配列に格納する方法

formからcsvファイルをアップロードさせて、PHPで色々処理したかった。とり ...

PHPページングテンプレ

使いやすいのがあったのでメモ。   $page            ...

PHPでdatetime型を分割する

datetime型を年月日時分秒でそれぞれに 分割させたい時に、今まではいちいち ...

PHPでフォームの禁止ワード制限

掲示板等で本文を送信する際に、禁止ワードが含まれていないかチェックするプログラム ...

PHPで土日祝を避ける

広告物を土日祝だけ非表示にしたいと言われ、 できたらPHPで行いたかった。 調べ ...

no image
短縮URL作成(管理画面)

error_reporting(E_ALL & ~E_NOTICE); ...

PHPでis_fileとfile_existsについて

ファイルの存在チェックを行う際に、file_exists関数を 使用していたが、 ...

PHPのLocationに変数を入れる

ページ遷移したい際に使う、 header("Location:./aaa.htm ...

incファイルとかtplファイルとか

初めて見るサーバーのファイルを見ていると incファイルとかtplファイルとか見 ...