Facebook:更改退出网址

时间:2011-02-25 13:33:29

标签: php facebook url logout

我的网站是动态构建的。我有page1.php,page2.php ..等。但它们被调用类似:index.php?page = page1

当我点击退出按钮时,它重新加载page1.php而不是index.php?page = page1

如何更改正确重新加载的代码,我需要编辑什么?

这是我正在使用的代码:

我有这样的退出按钮:

<a href="<?php echo $logoutUrl; ?>"><img border=0 src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif"></a>

其中:

  $logoutUrl = $facebook->getLogoutUrl();

我包括facebook.php和这里的getLogoutUrl();:

public function getLogoutUrl($params=array()) {   
    return $this->getUrl(
      'www',
      'logout.php',
      array_merge(array(
        'next'         => $this->getCurrentUrl(),
        'access_token' => $this->getAccessToken(),
      ), $params)
    );
  }

getCurrentUrl():

 protected function getCurrentUrl() {
    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'
      ? 'https://'
      : 'http://';
    $currentUrl = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $parts = parse_url($currentUrl);

    // drop known fb params
    $query = '';
    if (!empty($parts['query'])) {
      $params = array();
      parse_str($parts['query'], $params);
      foreach(self::$DROP_QUERY_PARAMS as $key) {
        unset($params[$key]);
      }
      if (!empty($params)) {
        $query = '?' . http_build_query($params, null, '&');
      }
    }

    // use port if non default
    $port =
      isset($parts['port']) &&
      (($protocol === 'http://' && $parts['port'] !== 80) ||
       ($protocol === 'https://' && $parts['port'] !== 443))
      ? ':' . $parts['port'] : '';

    // rebuild
    return $protocol . $parts['host'] . $port . $parts['path'] . $query;
  }

非常感谢!

1 个答案:

答案 0 :(得分:2)

致电

$logoutUrl = $facebook->getLogoutUrl();

你可以告诉他,一旦他退出,你希望他在哪里归还用户:

$logoutUrl = $facebook->getLogoutUrl(
    array(
        'next' => 'http://mydomain.com/index.php?page=page1'
    )
);