2016-03-04 92 views
0

我有2個網站的& B.每個用戶都有這兩個網站相同的登錄密碼& B.登錄後如何從一個網站重定向到另一個網站的用戶主頁?

現在我想一些特定的用戶登陸到(重定向到)乙網站的用戶主頁後,他們登錄到一個網站。

我不希望他們單獨打開的B網站的登錄頁面登錄。

如果特定的用戶已在網站,那麼他將被重定向到B網站的用戶主頁,而不基於B網站幹什麼登錄登錄。任何人都可以幫我解決這個問題嗎?

編輯 - 有什麼辦法,我可以從一個網站的登錄頁面到B網站的登錄頁面發佈的用戶登錄ID密碼,然後它觸發的登錄按鈕,用戶到B網站的用戶主頁重定向一氣呵成?

另外,如果我想登錄到一些外部網站的例如。像Gmail一樣通過我的門戶。用戶是否有任何方式登錄到我的網站並重定向到他的Gmail主頁?

+0

header('Location:http://www.example.com/'); 退出; –

+1

@RaviHirani並不完全在網站B上登錄用戶。 – Epodax

+0

@RaviHirani第二個網站是如何知道這個用戶是在第一個網站登錄的? – RiggsFolly

回答

4

您可以使用幾種不同的方法做到這一點。

方法1:使用Cookie

一旦用戶登錄到站點A,你可以寫一個cookie:

setcookie("SiteALoginTrue","True",time()+3600,"/",".Site-B-URL.com"); 
header("Location : Site-B-URL.com); // Redirect the website to siteB 

,並在你的站點B的代碼,你將需要閱讀,而網站的cookie負載。方法2:在您的SiteA登錄腳本中使用PHP ,您可以使用時間戳記保存記錄的用戶IP,並在重定向到站點B後,您需要另一個腳本來檢查站點A數據庫,如果登錄的IP記錄爲= true。一旦站點B發現IP被標記爲已登錄數據庫,那麼您可以創建登錄會話以避免在每次刷新頁面時檢查數據庫。

+0

我也會建議cookies。正確的路要走。 – izk

+2

還需要寫一個cookie來告訴另一個站點哪個用戶在另一個站點上登錄 – RiggsFolly

+1

這對加密(哪個用戶)cookie – RiggsFolly

1

如果您可以通過站點B連接站點A的DB

然後這個建議將幫助你。

1)在站點A

重定向時與電子郵件[email protected]用戶成功登錄

$userEmail = md5([email protected]); 
// Store below key to DB table of users whose email is [email protected] 
$key = md5(microtime().rand()); 
header('Location: http://www.site-B.com/'."$key/$userEmail"); 
exit; 

2)在站點B,

獲取$key$userEmail 連接與網站A的數據庫。和運行查詢一樣,

SELECT * FROM users WHERE MD5(email) = '$userEmail' AND key = '$key' 

獲取用戶和現場B.設置會話然後從數據庫中刪除鍵。

+0

的內容也許是有用的,但是在這裏每次登錄時都會生成一個新密鑰這需要每次在公共數據庫中更新..對嗎? – Kaus

+0

是的。每個登錄都有唯一的密鑰。一旦你在B站上設置了會話,你就不需要密鑰。 –

+0

好吧,將密碼與用戶名一起發送是否安全,因爲沒有密碼,他將無法登錄? – Kaus

相關問題