我在 php header 函数中遇到了一个奇怪的行为。
下面的代码工作正常,
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 页面,但不会返回到我的网站。
$location = $facebook->getLogoutUrl(array('next' => 'mysite.com')); header("Location: $location");
我检查了 $location 的内容,它与以字符串形式给出的 URL 相同。
请指教。
谢谢
最佳答案
尝试使用以下代码:-
$location = (string) html_entity_decode($facebook->getLogoutUrl(array('next' => 'mysite.com')));
header("Location: $location");
exit();
在使用上述代码时,还请检查所有查询字符串索引是否都按要求可用以及相同的值,它们是:-
- api_key
- 下一个
- session key
使用“header()
”函数时,必须确保在“exit()
”函数调用之后使用“header()
”函数。
另外,当使用这个“header()
”函数时,必须在向浏览器输出任何信息(无论是来自PHP还是HTML)之前调用它,所以最好使用输出缓冲,通过调用这个函数“ob_start()
” PHP 开始标记 ( <?php
) 之后的网页第一行。
希望有帮助。
关于PHP header 重定向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767362/