Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 09h35   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 20
Points : 9
Points : 9
Par défaut Gestion des droits : Bit Bashing

Bonjour à tous,

Je viens de découvrir le principe de bit bashing, et je rencontre un petit problème…

Alors voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
define('CONSULTER',1<<0); // 1
define('MODIFIER',1<<1); // 2
define('SUPPRIMER',1<<2); // 4
define('PARAMETRER',1<<3); // 8
define('GERER_USERS',1<<4); // 16
 
$droits = 8;
 
if ( ! PARAMETRER & $droits) {echo 'DEHORS';} else {echo 'OK';} // Donne OK
 
if ( ! GERER_USERS & $droits) {echo 'DEHORS';} else {echo 'OK';} // Donne OK, alors que je devrais avoir DEHORS
J'ai beau tourner dans tous les sens, je ne vois pas ce qui m'échappe…
nico.riv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 09h47   #2
Invité régulier
 
Inscription : novembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 20
Points : 9
Points : 9
Ce forum est vraiment magique... C'est pas la première fois que je met un post et que dans les 5 minutes qui suivent je trouve la solution

La bonne syntaxe est la suivante :

Code :
1
2
3
4
 
if ( ! (PARAMETRER & $droits)) {echo 'DEHORS';} else {echo 'OK';} // Donne OK
 
if ( ! (GERER_USERS & $droits)) {echo 'DEHORS';} else {echo 'OK';} // Donne DEHORS
Et voilà, les opérateurs bit à bit ne sont pas évidents à comprendre du premier coup... J'espère que ça pourra aider quelqu'un !
nico.riv est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h57.


 
 
 
 
Partenaires

Hébergement Web