今天是平安夜,現在已經是聖誕節了,祝大家都平平安安,開開心心的!
今晚我們分享一下用php實現**的自動登陸功能,自動登陸的本質就是長久的儲存session資訊,即關閉瀏覽
器,重新啟動之後,儲存在session的資訊依據存在,這樣就實現了自動登陸!為了讓大家能夠更好的理解技術的本
質,我先給大家聊聊cookie與session。首先,cookie是儲存在瀏覽器本地的,它是與本機的某個瀏覽器密切相關
的,換乙個瀏覽器,cookie就會失效;而session是儲存在伺服器那端的,當我們建立session之後,比如登陸成功之
後,將使用者名稱儲存在session裡面,這個時候在伺服器端會自動生成乙個sessionid,而且這個sessionid會以cookie
的形式,給我們瀏覽器返回來,因此,當我們訪問該**的其它頁面的時候,我們就會帶著這個sessionid的cookie
資訊過去,然後,**就會比對我們傳過去的sessionid與它伺服器端儲存的sessionid的值是不是一樣,假如一樣,
那它就會認為你是登陸成功的!
那麼為什麼關閉瀏覽器之後,重啟瀏覽器去訪問該**頁面,session登陸資訊就會失效了呢?其實原理是這樣
的:由於本機的sessionid是以cookie資訊儲存的,而且伺服器端給我們返回的帶有sessionid的cookie是沒有設定有
效時間的,因此,只要關閉瀏覽器,cookie就自動銷毀了,那麼儲存的sessionid資訊也就不存在了,所以伺服器判
斷的時候,就會認為你登陸資訊失效了!那麼解決辦法就是:只要我們能夠給那個特殊的cookie的sessionid設定一
個失效時間,那麼一切問題就迎刃而解了,下面我以乙個例子,講解一下**,讓大家徹底明白本質!!
// php開啟session
session_start();
// 模擬登陸驗證成功
$name = $_post['name'];
$pwd = $_post['pwd'];
if($pwd == '123'){
// 儲存使用者名稱資訊到session
$_session['uname'] = $name;
// 這個就是伺服器端生成的sessionid,非常重要,用於身份驗證的判定
$session_id = session_id();
// phpsessid就是伺服器端儲存的sessionid名字,這個名字是固定的,不允許亂取
// 當我們去訪問show頁面的時候,只要phpsessid這個cookie值儲存的sessionid還存在,說明就是登入狀態
// 也就實現了關閉瀏覽器重啟,還保持登入狀態
// 給特殊的phpsession這個cookie,設定有效生命週期,這樣重啟瀏覽器後,cookie資訊依舊存在
使用php session實現登陸
使用php的session功能,實現了簡單的登陸系統。1.登陸頁面 login.php session start session admin null 啟動session,設定名為admin的變數。2.form表單提交之後的處理頁面 if post username ltphoto post pa...
自動登陸 Cookie
再來兩句 cookie是由servlet api提供的類,是web伺服器傳送給客戶端的一小段資訊。客戶端在請求時,可以讀取資訊併發送到伺服器端,cookie中包含多個名稱 值對,伺服器傳送乙個cookie時,客戶端可以接受並儲存這個cookie。伺服器可以設定cookie的名稱 值 存活時間以及版本...
filter 自動登陸
filter過濾器filter 篩請求的 快速入門 filter攔截之後需要放行才能訪問到相應的資源位址,不然就執行完dofilter方法後停止 public class quickfilter implements filter public void dofilter servletreques...