首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHPLib 會話管理與用戶認證完整指南

     編輯:PHP 綜合知識

PHPLib 為 PHP 3/4 提供會話管理、用戶認證、權限控制及數據庫抽象層,解決 HTTP 無狀態帶來的狀態保持難題。

安裝與配置

  • 需 PHP 3.0.5+,track_vars = On
  • 支持 MySQL、Oracle、PostgreSQL 等數據庫
  • 修改 local.inc 設置數據庫連接、表名等參數
  • 在 php.ini 設 auto_prepend_file = prepend.php3 自動載入類庫

核心用法

頁面初始化

<?php
page_open(array(
    "sess" => "Cms_Session",
    "auth" => "Cms_Auth",
    "perm" => "Cms_Perm"
));
?>

腳本結尾必須調用 page_close() 寫回會話數據。

會話變量管理

<?php
$sess->register("username"); // 註冊變量名
if (check_input($input)) $username = $input; // 後賦值,安全
// 後續頁面直接用 $username
$sess->unregister("username"); // 刪除
?>

支持字符串、數組、對象等類型,數據最終存儲於數據庫/共享內存/LDAP。

用戶認證流程

  1. 首次訪問未認證 → 顯示登錄表單
  2. 提交用戶名/密碼 → JavaScript 環境下用 MD5(challenge+密碼) 加密傳輸,防竊聽
  3. 服務端驗證通過 → 建立 Session ID 存入 Cookie(或 URL 重寫)

權限控制

<?php
$perm->check("admin"); // 不符合則調用 perm_invalid() 退出
// 或靈活控制流程
if ($perm->have_perm("guest")) { ... }
elseif ($perm->have_perm("admin")) { ... }
?>

權限級別在 local.inc 定義,支持層級繼承。

安全要點

  • page_open() 必須在任何輸出前調用(含空白行)
  • 表單數據入庫前必須過濾驗證
  • 會話 ID 經 MD5+隨機種子加密,防偽造
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved