何時間も修正できないエラーに直面しています。localhost ではすべて問題ないようです。しかし、私のライブ ドメインでは、セッション エラーが発生しています。エラーについてのアイデアを得るのに役立つ情報を次に示します。
- Facebook PHP SDK を使用しています
- localhost とライブ ドメインの両方で WordPress の最新バージョンを使用しています
- ローカルホストとライブドメインの両方で同じファイル、アプリケーションの正確なコピーを使用しています
- localhost では、エラーは返されません。
ライブドメインでは、次のエラーが発生します。
警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーは既に送信されています (出力は /home/vantaget/public_html/wordpress/sofashare/wp-content/themes/sofashare/header.php:6 で開始されました) ) /home/vantaget/public_html/wordpress/sofashare/wp-content/themes/sofashare/lib/facebook/facebook.php の 37 行目
これが私がfacebook sdkを実装した方法です。
まず、これを functions.php ファイルに入れてエラーを取得します。
error_reporting(E_ALL ^ E_NOTICE);
私はライブラリを含めます:
require_once TEMPLATEPATH.'/lib/facebook/facebook.php';
そして、関数ファイルでは、これは関数です:
function sofa_include($lib) {
global $sofa, $user;
if ($lib == 'facebook') {
// new facebook call
$facebook = new Facebook(array(
'appId' => $sofa['fbappid'],
'secret' => $sofa['fbappsecret'],
));
// get facebook user
$user = $facebook->getUser();
// get user profile
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
?>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $facebook->getAppID() ?>',
cookie: true,
xfbml: true,
oauth: true
});
FB.Event.subscribe('auth.login', function(response) {
});
FB.Event.subscribe('auth.logout', function(response) {
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
<?php
}
}
今私のheader.phpファイルで、Facebook SDKを含めるためにこれを行います
<?php sofa_include('facebook'); ?>
エラーレポートをALLに設定して、localhostですべて正常に動作します。しかし、私のライブ ドメインでは、常に session_start ヘッダー送信エラーが発生します。何が間違っている可能性がありますか?