L'éditeur suivant vous proposera un article sur la façon dont PHP utilise intelligemment les opérations sur les bits pour implémenter la gestion des autorisations du site Web. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil
Tout d'abord, définissons 4 constantes pour définir quatre autorisations :
====================================== ==
define(ADD,1);//Augmenter les autorisations des enregistrements de la base de données
define(UPD,2);//Modifier les autorisations des enregistrements de la base de données
define(SEL,4);//Autorisation de rechercher des enregistrements de base de données
define(DEL,8);//Autorisation de supprimer des enregistrements de base de données
= ====== ==============================
Suivant Supposons qu'il y ait 3 utilisateurs :
L'utilisateur A dispose de quatre autorisations ADD-UPD-SEL-DEL Utilisez l'opération OR au niveau du bit pour calculer la valeur totale de A. permissions
$a_ all=ADD|UPD|SEL|DEL;//$all=15 Vous pouvez remarquer que cette valeur est la même que le résultat de l'addition
L'utilisateur B a les trois autorisations ADD-UPD-SEL, utilisez l'opération Bitwise OR calcule la valeur totale des autorisations de B
$b_all=ADD|UPD|SEL;//$all=7 Cette valeur est la même que le résultat de l'addition
L'utilisateur C dispose de deux autorisations, ADD-UPD. Calculez la valeur d'autorisation totale de C à l'aide de l'opération OR au niveau du bit
$c_all=ADD|UPD;//$all=3 Cette valeur est toujours la même que le résultat de l'addition
====== ===============================
Ensuite, nous utilisons l'opération ET au niveau du bit
$a_all&ADD Le résultat est vrai
$a_all&UPD Le résultat est vrai
$a_all&SEL Le résultat est vrai
$a_all&DEL Le résultat est vrai
================================= =====
$b_all&ADD Le résultat est vrai
$b_all&UPD Le résultat est vrai
$b_all&SEL Le résultat est vrai
$b_all&DEL Le le résultat est faux
=== ============================= =====
$ c_all&ADD Le résultat est vrai
$c_all&UPD Le résultat est vrai
$c_all&SEL Le résultat est faux
$c_all&DEL Le le résultat est faux
======= ========================= =====
Avez-vous découvert le secret ?
1. Lorsque la valeur totale des autorisations est associée à l'autorisation qui n'existe pas, le résultat est faux
2. les valeurs des autorisations sont toutes 2 à la puissance 2
Après avoir connu ces deux points de traitement des autorisations, cela devient simple, il suffit d'ajouter la valeur totale des autorisations actuelles de l'utilisateur et. le courant Les autorisations requises pour l'opération sont AND au niveau du bit. Si le résultat est vrai, exécutez-le, et s'il est faux, signalez simplement une erreur (bien sûr, cela ne signale pas nécessairement une erreur, vous pouvez concevoir votre propre programme lorsque vous n'avez pas l'autorisation).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!