我的网站是动态构建的。我有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;
}
非常感谢!
答案 0 :(得分:2)
致电
$logoutUrl = $facebook->getLogoutUrl();
你可以告诉他,一旦他退出,你希望他在哪里归还用户:
$logoutUrl = $facebook->getLogoutUrl( array( 'next' => 'http://mydomain.com/index.php?page=page1' ) );