1. 程式人生 > >PHP與MYSQL實現使用者登入登出

PHP與MYSQL實現使用者登入登出

因為最近才學習php與mysql,為了寫留言板的註冊,登入與登出功能,接觸到php的session會話機制,想要記錄下來。

Session: 代表伺服器與瀏覽器的一次會話過程(其本來的含義是指有始有終的一系列動作/訊息),這個過程是連續的,也可以時斷時續的。
我們在這裡討論的session機制實質是客戶端與伺服器端之間狀態保持的解決方案。

Session 的工作機制是:為每個訪問者建立一個唯一的 id (UID),並基於這個 UID 來儲存變數。UID 儲存在 cookie 中,亦或通過 URL 進行傳導。

session和cookie一直被放在一起比較,我們這裡不討論它們倆,只需知道cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案,且大部分session機制都使用會話cookie來儲存session id(標識session是否存在)。

接下來我們講如何用php保持登入狀態且登出登入。

首先,建立session會話:

<?php
session_start();
?>

生成session檔案存放在tmp目錄下。同時會設定一個客戶端的cookie,用於儲存session id(傳送客戶端請求,若存在則使用,不存在建立)。

然後,儲存session資料:

<?php
$_SESSION['username'] = 'xyj';
?>

儲存在超級全域性變數陣列$_SESSION中。這樣,設定好Session後就能通過session中儲存的資料用於在網頁顯示使用者資訊與狀態了。

最後,登出使用者登入:

<?php
unset('$_SESSION['username']);//釋放指定的session變數
session_destroy(); //失去所有已儲存的 session 資料。
?>

當然你也可以直接關閉瀏覽器,重新開啟網頁來登出session(不過這樣做很傻)。

總結下來不多,因為並沒有往更深處探索,像cookie機制,http無狀態協議等,用來寫個簡單的網頁登入功能也夠了。
如果能夠深刻理解了session機制,可以不用php的session機制,自定義一個,讓你的網站更加安全。