Php Facebook fbsr和会话不会删除

Php Facebook fbsr和会话不会删除,php,javascript,facebook-graph-api,cookies,Php,Javascript,Facebook Graph Api,Cookies,我有一个logout.php页面。通过单击已附加此javascript的注销来调用: FB.getLoginStatus(function(response) { if (response.status === 'connected') { button.onclick = function() { FB.logout(function(response) { window.location = 'logout.php';

我有一个logout.php页面。通过单击已附加此javascript的注销来调用:

 FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      button.onclick = function() {
        FB.logout(function(response) {
          window.location = 'logout.php';
        });
      }
   }
 });
在注销页面上,我运行以下php代码:

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脚本不会删除fbsr和phpsessid cookies。如何解决这个问题?

对于某些应用程序,FB在“.your domain.tld”域下设置fbsr cookie(请注意前面的一点)。除非指定正确的域,否则不会删除cookie。尝试此操作,您将可以注销:

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

这是一个FB bug,它使cookie在注销时不会被删除,因此$FB->getUser()API调用将返回以前的用户ID,而不是NULL或0。这是FB世界;)
你好

我也有同样的问题,尽管所有的cookie PAR都是正确的(双重检查) 似乎对我有用的是 setcookie($cookie_name',null',/','.....$base_domain); 请注意空值,而不是:time()-3600


老实说,我不知道为什么这是有效的,而time()-3600却没有,但我反复检查了一下,它是有效的。。。HTH

我也试过:$facebook->destroySession();它仍然不会注销,而不是
unset($_COOKIE['PHPSESSID'])使用
会话_destroy()。这将确保会话被清理。你是说你没有注销Facebook,还是说你没有注销你的网站
FB.logout
应该可以处理从Facebook注销的问题,所以你不需要触摸
FB\u sr*
cookie。它一直工作到2天前,michael,但是现在它保留了fbsr和PHPSESSID中存储的值,因为某些原因我无法取消设置。尝试使用会话\u销毁,但未发生任何事件。fbsr仍然活跃Melissa我想你是对的。。。对我来说,它一直工作到3天前,然后就坏了。。。事实上,我认为php删除了cookie,但之后fbsr_uucookie又被写入了(我想是facebook写的)。。。