我有幾個關於會話和登錄/註銷系統的問題。PHP會議登錄系統問題!
在我的系統中,首先檢查用戶數據(用戶名和密碼)是否正確。如果是這樣,我正在註冊一個會話:$_SESSION['loggedin'] = 1
然後我假設已經登錄,我總是檢查是否$_SESSION['loggedin']
1或不。
但是,我最近觀察到,在其中一個用戶登錄後,讓他們轉到他們的頁面:/profile.php?u=newuser
,但是當他們在他們自己的頁面中時,如果他們恰好將url更改爲:/ profile.php?u=newuser2
我的系統假設newuser2現在已經被登錄了:(我怎樣才能解決這個問題?最好和最安全的登錄用戶的方式是什麼?
最後,會按照下面的方式工作嗎?假設我註冊了$_SESSION['username'] = $username;
在這裏$ username data是從數據庫檢索,爲了理解一個用戶登錄或不,我總是從數據庫中檢索用戶名,並檢查$_SESSION['username'] == username
。這是合乎邏輯的嗎?總是從數據庫獲取用戶名是否有效?
你並不需要通過周圍的用戶名中的URL。只需在會話中將其存儲在登錄時,並檢查會話是否設置了用戶名,而不是1,則在會話中將該值用作用戶名(如果存在)。 – Orbling 2011-05-09 01:25:16