2011-04-14 64 views
2

如果已經發布此問題,請致歉。在搜索相關問題時,我沒有找到我正在尋找的答案。PHP:我不能讓用戶在多個瀏覽器上登錄網站

我有一個我剛剛創建的登錄系統,它與Facebook一起工作。一旦用戶使用他們的Facebook信息登錄,然後我在他們的數據庫中創建配置文件。我成功登錄後開始會話,並將該用戶的ID存儲在該會話中。到目前爲止,這個設置工作得很好,但是我最近注意到,如果我嘗試在另一個瀏覽器(1xChrome,1xIE,等等)上登錄該網站,同時它不會讓我。我該如何解決這個問題?我希望用戶不僅能夠同時登錄到同一臺計算機上的多個瀏覽器,但是如果他們在家中保持登錄狀態,仍然可以從另一臺計算機登錄。

任何幫助,非常感謝!

謝謝!

編輯:是的,我有興趣允許用戶登錄到多個瀏覽器,如1xChrome,1xIE,1xSafari等。我應該更清楚。抱歉。

+1

您是否使用用戶ID創建會話?如果是這樣,那會發出警告,但這可能不是問題的原因。 – rockerest 2011-04-14 22:22:30

+0

那麼我是在facebook數據庫中存儲的,但自動遞增的主鍵ID是我正在使用的。我會做一個session_start(),然後創建一個$ _SESSION ['userid']並存儲用戶的id。不知道這是否是正確的方式,如果沒有請解釋,因爲我只是做了這個,因爲我很新。 – daveomcd 2011-04-14 22:27:00

+1

這似乎很好。我擔心你在用他們的ID命名會議。像'session_name($ id); session_start();'非常糟糕的主意。但將它存儲在會話中似乎很好。 – rockerest 2011-04-14 22:28:30

回答

2

您可能想對曲奇做更多的研究。

您的用戶不應該能夠使用同一個瀏覽器的多個實例(例如,4個Internet Explorer窗口)進行登錄。

你的用戶應該能夠使用不同的瀏覽器(即1×IE, 1個火狐瀏覽器,1個Chrome瀏覽器或任何上述瀏覽器+ 1個啓用私密瀏覽/隱身/等)。

原因是因爲cookie存儲是不同的。您可以在技術上使用不同的Firefox配置文件,我認爲...

...但回到你的問題 - 你可能想了解更多關於Cookies及其在會話中的功能。

1

該會話不應被終止,除非您自己執行檢查並終止它。一個問題可能是實際的Facebook登錄。如果Facebook不允許多次登錄(我認爲它沒有),你的第一個瀏覽器會話會得到一個過期的會話(如果你檢查Facebook登錄狀態),這可能會導致你的腳本刷新第一個客戶端的狀態(再次,如果你像那樣處理它)。

+0

Facebook的oauth與Google的有很大不同嗎?我知道我可以使用我的谷歌身份證在多個不同的瀏覽器上使用計算器進行登錄 – daveomcd 2011-04-14 22:46:21

相關問題