サポート » 使い方全般 » エラー Cannot modify header informationについて

  • 解決済 toshiki_ebata

    (@toshiki_ebata)


    エラーが解決できなくて困っています。

    FuelPHPとWordPressを使ってWebサイトを構築しようと思っています。
    この方のブログ(http://dragon-ark.com/archives/743)を参考に、ドキュメントルートにFuelのWordPressのフォルダをおいて、FuelPHPからWordPressの関数を呼び出そうとしています。

    require ‘../wordpress/wp-load.php’;でWordPressを読み込み、WodPressで書いた記事をFuel側で表示できてはいるのですが、以下のエラーが出ています。

    Warning!
    ErrorException [ Warning ]: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\mobareco.jp.acweb\article\wp-includes\functions.php:3092)
    COREPATH/classes/cookie.php @ line 101:
    100:
    101:	return setcookie($name, $value, $expiration, $path, $domain, $secure, $http_only);
    102:	}

    php.iniに「output_buffering = On」と記述しましたが、解決しませんでした。
    WordPressのfunction.phpは何も編集していません。

    どなたか、解決方法をご存知ではないですか?

    =================
    開発環境
    OS:Windows7 32bit
    XAMPP:V3.2.1
    Apache:2.4.9
    PHP:5.5.11
    MySQL:5.6.16
    =================

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • toshiki_ebata様、初めまして。
    自分も同様の環境(FuelPHP & WordPress)で、同様の現象に遭遇したため、コメントさせていただきました。

    自分もこの問題を色々と調べているのですが、きちんとした解決策を発見できておりません。
    自分の場合、ControllerのindexアクションでSessionに書込みをしようとした瞬間にこのメッセージが出力されます。

    Session利用の際のSetCookieで、このエラーが発生しており、どうもWordPressのfunctions.phpのwp_ob_end_flush_all関数がControllerよりも先に呼ばれるために発生する事は確認しました。ただ、このwp_ob_end_flush_allがWordPressでどういった役目をしているのかが理解できず、対策をどうしたら良いか悩んでいます。。。

    FuelPHPから呼ばれた場合とWordPressで利用している場合で、ob_get_statusで取得できる値のflagsに違いがあるのを確認したため、一時的にそれを見て判断するような処理を追加していますが、根本的な解決がしたいです。

    もしtoshiki_ebata様が既に問題を解決されていましたら、その方法をお教えいただけないでしょうか。

    トピック投稿者 toshiki_ebata

    (@toshiki_ebata)

    ctrigger様

    はじめまして。
    私の場合、Sessionクラスを使って、setやget、フラッシュセッションを使っているところを通常の$_SESSION変数に戻したところ、エラーが出なくなりました。
    ただ、何故そうなるかは未だに分かりません。
    参考になれば幸いです。

    トピック投稿者 toshiki_ebata

    (@toshiki_ebata)

    toshiki_ebata様

    対策の記載をいただき、ありがとうございます。

    なるほど、$_SESSION変数の利用に変更されたのですね!
    参考にさせていただきます m(_ _)m

    また、何かわかればこちらに投稿したいと思います。

    FuelPHPをメインで動作させる事を前提に、
    下記対応でSessionクラスを動作させました。

    FuelPHPのbootstrap.php内でWordPressのwp-load.phpをロード後、
    remove_actionで、シャットダウン時のアクションを削除しました。

    FuelPHPのbootstrap.php

    require 'path/to/wordpress/wp-load.php';
    remove_action('shutdown', 'wp_ob_end_flush_all', 1);

    これでしばらく様子を見てみようと思います。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「エラー Cannot modify header informationについて」には新たに返信することはできません。