利用php執行個體登入登出我們一般會藉助於session來儲存記錄使用者登入成功的資訊,然後退出時我們再使用unset來清除session即可實現使用者登入登出功能了,下面我來介紹一個簡單的執行個體。
關於會話處理
HTTP 是一種無狀態的協議,說明每次請求的處理都與之前或之後的 請求無關,但是為了能夠調整使用者特有的行為和喜好設定,出現了一種在用戶端儲存少量資訊(常稱為cookie)的實踐,但由於 cookie 大小的限制、所允許的 cookie 數量以及 cookie 的實現上的各種不一致,出現了另外一種解決方案:會話處理。
會話處理的實現方式是為每位網站訪問者分配一個稱之為會話 ID(SID)的唯一識別屬性,然後將此 SID 與任意數量的資料關聯。
開始會話
session_start();
建立會話變數
| 代碼如下 |
複製代碼 |
$_SESSION['username'] = “jason”; |
刪除會話變數
| 代碼如下 |
複製代碼 |
unset($_SESSION['username']);
|
簡單的登入登出
| 代碼如下 |
複製代碼 |
$supervisor = "admin"; $superpsw = "passwd"; // 檢查是否提交表單 if (isset($_POST['superadmin'])) { if (!($_POST['supername'] == $supervisor) || !($_POST['superpass'] == $superpsw)) { echo "使用者名稱或密碼錯誤"; exit; } else { session_start(); $_SESSION["superlogin"] = $_POST['supername']; } } else { session_start(); // 檢查是否設定了會話變數,即是否已經登入,如果沒有,顯示登入頁面 if (! isset($_SESSION["superlogin"]) ) { echo ""; exit; } } // 由使用者銷毀會話變數,登出 if (isset($_GET['logout'])) { unset($_SESSION['superlogin']); header("Location:index.php"); } |
假設將此檔案命名為include.php,將其包含到要驗證登入的頁面即可,例如 index.php
| 代碼如下 |
複製代碼 |
require “include.php”; ?> 管理 登出 歡迎進入 |
如此訪問 index.php 頁面時將進入登入頁面,登入後顯示 index.php 頁面內容,這個過程一直持續到使用者結束會話,如關閉瀏覽器或點擊登出按鈕,但是會話本身在PHP伺服器有一個預設的生存期。
有效會話的期間由 php.ini 所控制,預設為1440秒,即24分鐘
session.gc_maxlifetime = 1440
PS:本文是個範例,用簡單的代碼來做說明,實際應用中會採用更加複雜的控制機制。
http://www.bkjia.com/PHPjc/632693.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632693.htmlTechArticle利用php執行個體登入登出我們一般會藉助於session來儲存記錄使用者登入成功的資訊,然後退出時我們再使用unset來清除session即可實現使用者登入登出...