PHP标头重定向问题

时间:2010-09-22 08:05:20

标签: php facebook

我在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。

请建议。

由于

3 个答案:

答案 0 :(得分:4)

尝试使用以下代码: -

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

另外,在使用上述代码时,请检查所有查询字符串索引是否可用,以及相同的值: -

  1. API_KEY
  2. session_key可以
  3. 使用“header()”功能时,必须确保在“exit()”功能调用之后使用“header()”功能。
    此外,当使用这个“header()”函数时,必须在向浏览器输出任何信息(从PHP或HTML)之前调用它,因此最好使用输出缓冲,通过调用此函数“{{1 “在PHP开始标记之后的网页的第一行(ob_start())。

    希望它有所帮助。

答案 1 :(得分:1)

一点也不奇怪,我忘了做html_entity_decode($ location);

我回应了$ location,当我var_dump()编辑它时,我发现'&'实际上是'&安培;'

感谢您的回答。

答案 2 :(得分:0)

这可能与字符编码有关