setcookieで「Cannot modify」エラー
PHPでsetcookieを使うと「Warning: Cannot modify header information」みたいなエラーが出て、cookieが保存されなかった。自分のサーバでテストした際は問題なく、本番用の他社所持サーバで発生した。
リファレンスを確認すると「setcookie()は、あらゆる出力よりも前に送信される必要があります」との記載あり。
■リファレンス
http://php.net/manual/ja/function.setcookie.php
プログラムだけなら書き換えるだけで済むんだけど、既に公開されているWordPressで、cookieはプラグインの一部で使っており、色々入れ替えとなるとややこしそうだった。
解決策として以下記述をしたphp.iniファイルをサーバにアップすることで対応できた。
1 |
output_buffering = On |
自サーバとかでphp.iniファイルを直接弄れるのであれば、そちらを編集すればOK。
本来であればsetcookieの前にhtmlなりの出力がされるところを、バッファに溜め込むことで回避しているっぽい。ただ、けっこう無理やり感があるので、header関数と同じくsetcookieも頭に書かないといけないというのは覚えておく。
関連記事
-
-
PHPでコマンドを実行して画像を加工
PHPで画像をリサイズしたりサムネイルを作ろうとすると、 ソースが長くなって面倒 ...
-
-
FLASHがインストールされているかどうかチェックする
以前にここでちょっとやったけど、インストールされているか どうかだけならもっと良 ...
-
-
PHPからredisを利用する
もうちょっと 突っ込んで触ってみる。 【接続と終了】 [crayo ...
-
-
PHPで複数の画像やテキストファイルをzipファイルとしてダウンロードさせる
PHPで画像ファイルやテキストファイルをzip圧縮して、ダウンロードさせたかった ...
-
-
PHPで画像の削除
やりたい事↓↓ --------------- 画像の削除。削除ボタンを押すと「 ...
-
-
ユーザーエージェントなどユーザー情報を取得する方法
上からUA、IP、ホスト名を取得。 $ua = $_SERVER['HTTP_U ...
-
-
独自タグから
タグへの変換function
独自タグは##IMG1##みたいな感じ。 画像ファイル名は「ファイルパス/seq ...
-
-
画像をアップロードすると複数サムネイルを生成する方法
フォームで画像をアップロードすると、予め定めておいた大中小のサイズでサムネイル画 ...
-
-
PHPでeval時のエラー
eval()'d code on line みたいなエラーが出てた。 よそのシス ...
-
-
画像削除用function
ファイルパス、拡張子、seq番号、画像番号を渡してあげるだけ。 拡張子部分があれ ...