2014-04-20 31 views
0

我使用http://www.9lessons.info/2011/02/login-with-facebook-and-twitter.html的教程創建了Facebook登錄。但問題是登錄後用戶將被重定向到index.php頁面。我如何將他重定向到他點擊登錄的頁面。PHP - 使用Facebook登錄後返回上一個URL

我嘗試將以前的網址保存到會話中。但我不知道爲什麼,它不工作。它適用於正常登錄,但不適用於Facebook。我也嘗試將以前的網址保存到cookie中。它也沒有工作。網址正在保存,但登錄後會話url/cookie url丟失。有人可以告訴我一種替代方法?

+0

據我所知,用戶將被重定向到您在Facebook應用程序設置中設置的任何頁面。 –

+0

@SanuelJackson與應用程序無關。在php頁面中,它表示重定向到「home.php」。我想要轉到用戶點擊登錄的頁面。假設用戶點擊「page2.php」登錄後,登錄後必須重定向到同一頁面,「page2.php」 –

+0

將他們所在的頁面存儲在會話/ cookie中,然後重定向(如果已設置) - 如果允許。我將作爲答案發布,以便我可以給出一個設置會話變量的代碼示例,並處理重定向 - 不會寫Facebook代碼。 –

回答

1

實例當前頁面

信息在所有,但你的登錄頁面重定向存儲之前:

session_start(); 
$_SESSION['lastpage'] = $_SERVER['HTTP_REFERER']; 

在所有其他網頁:

session_start(); 
if(isset($_SESSION['lastpage'])) { 
    $lastpage = $_SESSION['lastpage']; 
    $_SESSION['lastpage'] = false; 
    unset($_SESSION['lastpage']); 
    header("location: " . $lastpage); 
} 

類似的東西應該工作。在設置會話變量之前,請確保對$ _SESSION變量進行santize變量,並驗證最後一個來自您的站點(或支持的站點)的URL。

+0

感謝您的幫助。我還沒有嘗試過。但我以前使用的代碼與它相似。除了我沒有把它弄虛作假。這會是問題嗎? –

+0

@ user3392772 - 取消設置它將對防止無限重定向循環非常重要。 –

+0

好的。我使用這種方法進行正常登錄,它工作並重定向到上一頁。但與Facebook實施它,它不工作。因爲在Facebook的身份驗證後,會話變量丟失。我試着回顯會話變量。它顯示爲空 –