2010-09-22 142 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''

感謝您的回答傢伙。