ホームページ  >  記事  >  バックエンド開発  >  Web サイトの権限管理を実現するための PHP のビット操作の賢い使い方について詳しく紹介します。

Web サイトの権限管理を実現するための PHP のビット操作の賢い使い方について詳しく紹介します。

黄舟
黄舟オリジナル
2017-03-13 16:40:581375ブラウズ

以下のエディターは、PHP を使用してビット操作を賢く使用してウェブサイトの権限管理を実装する方法に関する記事をお届けします。編集者はこれがとても良いと思ったので、参考として共有します。エディターをフォローして一緒に見てみましょう

まず、4 つの権限を設定するために4定数を定義します:

================ === ===================

define(ADD,1);//データベースレコードの権限を増やすdefine(UPD,2);/ /Permissionデータベースレコードを変更する
define(SEL,4);//データベースレコードを検索する権限
define(DEL,8);//データベースレコードを削除する権限

========= == ==========================

次に、3 人のユーザーがいると仮定します。

1 人のユーザーが ADD- を所有します。 UPD-SEL-DEL の 4 つの権限。ビットごとの OR 演算を使用して、A の権限の合計値を計算します

$a_
all=ADD|UPD|SEL|DEL;//$all=15 この値と足し算であることがわかります。結果は同じですユーザー B には ADD-UPD-SEL の 3 つの権限があります。ビットごとの OR 演算を使用して B の権限の合計値を計算します
$b_all=ADD|UPD|SEL;//$all=7 この値と加算結果は同じです
ユーザー C には ADD-UPD の 2 つの権限があります。ビットごとの OR 演算を使用して C の権限の合計値を計算します
$c_all=ADD|UPD;//$all=3 この値は同じです足し算の結果

=====================================

次に、ビットごとの AND を使用して演算を実行します $a_all&ADD の結果は true
$a_all&UPD の結果は true
$a_all&SEL の結果は true
$a_all&DEL の結果は true

============= ========= ================

$b_all&ADD 結果は true$b_all&UPD 結果は true
$b_all&SEL 結果は true
$b_all&DEL 結果は false です

= ====================================

$c_all&ADDの結果はtrue$c_all&UPDの結果はtrue
$c_all&SEL 結果はfalse
$c_all&DEL 結果はfalse

================ ================== ======

その秘密を発見しましたか?

1. 権限の合計値が存在しない権限と結合される場合、結果は false になります

2. 権限の値はすべて 2 乗されます

。これら 2 つのアクセス許可を処理する方法はわかっています。アクセス許可を伴う操作が実行されるたびに、ユーザーの現在のアクセス許可の合計値と現在の操作に必要なアクセス許可の間でビットごとの AND 演算を実行するだけです。結果が true の場合は実行し、false の場合はエラーを報告するだけです (もちろん、必ずしもエラーが報告されるわけではありません。許可がない場合は独自のプログラムを設計できます)。

以上がWeb サイトの権限管理を実現するための PHP のビット操作の賢い使い方について詳しく紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。