2012-01-06 6 views
2

私はlogout.phpページを持っています。Facebookのfbsrとセッションは削除されません

if (isset($_COOKIE['fbsr_' . $app_id])) { 
    setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600, "/"); 
    setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600, "/"); 

    unset($_COOKIE['fbsr_' . $app_id]); 
    unset($_COOKIE['PHPSESSID']); 
} 

問題ではJavaScriptが誰かをログアウトしていることである:私はこのPHPコードを実行しているログアウトページ

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     button.onclick = function() { 
     FB.logout(function(response) { 
      window.location = 'logout.php'; 
     }); 
     } 
    } 
}); 

:これは、それに接続されているこのJavaScriptを持ってログアウトをクリックすることによって呼び出されます。 phpスクリプトはfbsrとphpsessidのクッキーを削除しません。この問題を回避するにはどうすればよいですか?

+0

また、私は試みました:$ facebook-> destroySession();それはまだログアウトしません。 –

+0

'unset($ _ COOKIE ['PHPSESSID']);の代わりに' session_destroy(); 'を使います。これにより、セッションがクリーンアップされます。 –

+1

Facebookからログアウトしていない、またはサイトからログアウトしていないということですか? 'FB.logout'はFacebookからのログアウトを処理する必要があるので、' fb_sr * 'クッキーに触れる必要はありません。 –

答えて

5

いくつかのアプリケーションでは、FBは ".your-domain.tld"ドメインの下にfbsrクッキーを設定します(上記の点に注意してください)。正しいドメインを指定しない限り、Cookieは削除されません。これを試してみて、あなたはログアウト作業があるでしょう:

setcookie('fbsr_' . $appID, '', time()-3600, '/', '.'.$_SERVER['SERVER_NAME']);

それは、クッキーは、ログアウト時に削除されない可能FBのバグですので、あなたの$ FB->のgetUser()API呼び出しではなく、元のユーザーIDを返します。これはFBの世界です;) Greetings!

+0

は私のためには機能しません。 – Pons

0

私は私のために働くようで何 すべてのクッキーPARSは(doublechecked)正しかったとしても、同じ問題を抱えていた、 ますsetcookie($のcookie_name、 ''、NULL、 '/'、 'です。' $ base_domain ); ノートNULL値の代わりに:時間() - 3600

私は正直に)(つまり作業の理由を知らないと時間 - 3600にはありませんが、私がチェッククロス、それが動作する... HTH

関連する問題