2010-09-22 117 views
2

我正面临着PHP头函数中的一个特殊行为。PHP标题重定向问题

下面的代码工作正常,

 
header("Location: https://www.facebook.com/logout.php?api_key=148814828480550&next=http%3A%2F%2Fmysite.com&session_key=2.HP0X33OURpJRDPfkvWYtAQ__.3600.1285146000-1039666914"); 

但是当我通过URL作为变量,它需要我的Facebook页面,但没有恢复到mysite的。

 
$location = $facebook->getLogoutUrl(array('next' => 'mysite.com')); 
header("Location: $location"); 

我检查了$ location的内容,它是作为字符串给出时工作的相同url。

请指教。

感谢

+1

如果它做了不同的事情,那么它又如何呢?你能告诉我们吗?getLogoutUrl()' – 2010-09-22 08:08:25

回答

0

它可能是与字符编码

4

尝试使用下面的代码: -

$location = (string) html_entity_decode($facebook->getLogoutUrl(array('next' => 'mysite.com'))); 
header("Location: $location"); 
exit(); 

也请检查是否与相同的值沿所需的全部查询字符串索引都是可用的,使用上面的代码,当其分别是: -

  1. API_KEY
  2. 下一个
  3. session_key可以

当使用“header()”的功能,这是必要的,以确保您使用的是“exit()”功能只是“header()”函数调用之后。
此外,当使用这个“header()”函数时,它必须在向浏览器输出任何信息(无论是来自PHP还是HTML)之前调用,所以最好使用输出缓冲,通过调用此函数“ob_start()”紧跟在PHP开始标签(<?php)之后的第一行网页。

希望它有帮助。

+2

我以前有过类似的问题,但exit()解决了它们。 – justinl 2010-09-22 08:12:27

1

没有特殊可言,我忘了做html_entity_decode($位置);

我在回应$位置,当我var_dump()'编辑它时,我发现'&'实际上'& amp''

感谢您的回答家伙。