比较|对象|过程|心得
最近打开我以前做的一个项目,系统结构中使用了4个包含文件对登录用户的权限进行判断,属典型的面向过程写法,可能很多朋友以前都写过这样的代码。我把这些代码整理了一下,写成一个权限判断的简单类,以比较一个面各对象和面向过程之间的差异。
代码如下(其中省略了部分代码)。
sesson1.php
/*
* 功能:取得用户的cookie,以判断用户是否已经登录,并是否具有系统管理员权限
* 程序员:xiangli
* 日期:2002-07-19
*/
$UserName = $HTTP_COOKIE_VARS['UserName1'];//用户名
if ( empty($UserName) || $HTTP_COOKIE_VARS['Level'] != 1 )
{
header("Location: ../right.phtml");
}
?>
session2.php
/*
* 功能:取得用户的cookie,以判断用户是否已经登录,并是否具有操作员权限
* 程序员:xiangli
* 日期:2001-07-19
*/
$UserName = $HTTP_COOKIE_VARS['UserName1'];//用户名
$Level = $HTTP_COOKIE_VARS['Level'];//权限级别
if ( empty($UserName) || $Level > 2 )
{
header("Location: ../index.phtml");
}
?>
session3.php
/*
* 功能:取得用户的cookie,以判断用户是否已经登录,用户是否具有普通用户权限
* 程序员:xiangli
* 日期:2001-07-19
*/
if ( empty($UserName1) || $Level > 3 )
{
header("Location: ./right.phtml");
}
?>
session4.php
/*
* 功能:取得用户的cookie,以判断用户是否已经登录,用户是否具有企业用户权限
* 程序员:xiangli
* 日期:2001-08-11
*/
if ( empty($_COOKIE['ClientName']) || $_COOKIE['Level'] != 4 )
{
#header("Location: ../client_login.phtml");
}
?>
调用:
include_once("/lib/session1.php");
include_once("/lib/session2.php");
include_once("/lib/session3.php");
include_once("/lib/session4.php");
?>
合并后的权限判断类:
sessionPower.php
/**
* @功能:根据cookie的值判断用户是否已经登录及用户的权限
* @程序员:xiangli
* @日期:2002-12-20
*/
class sessionPower{
var Username;//用户名
var Level;//用户权力级别
/**
* 判断用户是否已经登录
*/
function sessionPower()
{
$this->UserName = $HTTP_COOKIE_VARS['UserName'];//用户名
$this->Level = $HTTP_COOKIE_VARS['Level'];//权限级别
if ( $this->UserName == "" || $this->Level == "" )
{
header("Location: ../index.phtml");
}
}
/**
* 是否具有系统管理员权限
*/
function adminPower()
{
if ( $HTTP_COOKIE_VARS['Level'] != 1 )
{
header("Location: ../right.phtml");
}
}
/**
* 是否具有操作员权限
*/
function operatorPower()
{
if ( $this->Level > 2 )
{
header("Location: ../index.phtml");
}
}
/**
* 是否具有普通用户权限
*/
function generalPower()
{
if ( $this->Level > 3 )
{
header("Location: ./right.phtml");
}
}
/**
* 用户是否具有企业用户权限
*/
function enterprisePower()
{
if ( $this->Level != 4 )
{
#header("Location: ../client_login.phtml");
}
}
}
?>
调用:
include_once("/lib/sessionPower.php");
$sessionPower = new sessionPower();
$sessionPower->adminPower();
$sessionPower->operatorPower();
$sessionPower->generalPower();
$sessionPower->enterprisePower();
?>
注:如果使用面向对象编程,建议最好使用zend编辑器,这样开发效率会快出很多!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),