Country Posté 15 Mars 2005 Posté 15 Mars 2005 Bonjour, Afin de gérer les accès sur mon site et mon forum j'ai utilisé la méthode du Bit Bashing. Seulement arrivé à un certain nombre de règles (32 exactement) je dépasse la capacité des entiers. Exemples : Règle : Valeur Décimale 00 : 1 01 : 2 02 : 4 03 : 8 04 : 16 05 : 32 06 : 64 07 : 128 08 : 256 09 : 512 10 : 1024 11 : 2048 12 : 4096 13 : 8192 14 : 16384 15 : 32768 16 : 65536 17 : 131072 18 : 262144 19 : 524288 20 : 1048576 21 : 2097152 22 : 4194304 23 : 8388608 24 : 16777216 25 : 33554432 26 : 67108864 27 : 134217728 28 : 268435456 29 : 536870912 30 : 1073741824 31 : -2147483648 32 : 1 33 : 2 34 : 4 ... Voila, alors j'ai 2 questions : - Puis-je remedier à ce problème tout en continuant à utiliser le Bit Bashing pour gérer les droits ? Et si oui comment ? ou - Dans le cas contraire quelle serait la meilleur méthode pour gérer les droits des membres ? (sachant que l'utilisation de groupes est exclue et que le nombre de droits à attibuer sera asser important) Merci pour votre aide
Anonymus Posté 16 Mars 2005 Posté 16 Mars 2005 Ca représente un nombre très important de droits. Si effectivement tu as besoin de plus de droits, je crains que la méthode soit de passer par une base de données. Mais es tu sûr d'avoir besoin de plus de 32 droits différents ?
MarvinLeRouge Posté 16 Mars 2005 Posté 16 Mars 2005 Salut, 2 propositions : 1) unsigned devant ton int pour doubler l'intervalle en décalant tout côté positif 2) bigint pour passer en 64 bits
Country Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 (modifié) Merci pour ta réponse Anonymus. En fait, au vu du site et du forum, le cap des 32 droits différents sera largement dépassé. Ma 2ème question porterait plutôt sur le format à utiliser pour stocker les droits dans la base de donnée. Edit: Merci MarvinLeRouge, je vais essayer Modifié 16 Mars 2005 par Country
Anonymus Posté 16 Mars 2005 Posté 16 Mars 2005 On est bien d'accord, ce sont 32 droits différents, que tu peux 'additionner' ! Autrement dit, ca doit te laisser une très très grande marge de manoeuvre.
Country Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 (modifié) MarvinLeRouge, si je ne trompe pas les solutions que tu me donne sont pour mysql, hors "le bug" intervient dès php. On est bien d'accord, ce sont 32 droits différents, que tu peux 'additionner' ! Autrement dit, ca doit te laisser une très très grande marge de manoeuvre. <{POST_SNAPBACK}> Heu, je n'ai pas bien compri . Voici un exemple du problème : // Utilisateur qui à 3 accès$news_edit = 1<<5; // Accès d'id 5$forum_reply = 1<<25; // Accès d'id 25$forum_del = 1<<31; // Accès d'id 31$acces=$news_edit | $forum_reply | $forum_del;echo $acces; Modifié 16 Mars 2005 par Country
Anonymus Posté 16 Mars 2005 Posté 16 Mars 2005 // Utilisateur qui à 3 accès$news_edit = 1<<5; // Accès d'id 5$forum_reply = 1<<25; // Accès d'id 25$forum_del = 1<<31; // Accès d'id 31$acces=$news_edit | $forum_reply | $forum_del;echo $acces; <{POST_SNAPBACK}> Et tu en as plus de 32, comme ca ? Sachant que tu peux les regrouper ? (par exemple, un 'superutilisateur' peut faire $forum_del et $news_del, etc..)
Country Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 Bin, des accès d'id XX, oui il y en a plus de 32. Mais les "regrouper" correspondrai à faire des groupes d'utilisateurs, ce qui ne collerai pas.
Xenon_54 Posté 18 Mars 2005 Posté 18 Mars 2005 (modifié) Voici un exemple du problème : // Utilisateur qui à 3 accès$news_edit = 1<<5; // Accès d'id 5$forum_reply = 1<<25; // Accès d'id 25$forum_del = 1<<31; // Accès d'id 31$acces=$news_edit | $forum_reply | $forum_del;echo $acces; <{POST_SNAPBACK}> Tu sembles avoir plusieurs "modules" où tu peux donner des droits. N'est-il pas possible de regrouper ces "droits" dans divers champs MySQL? Un champ pour "news", un autre pour "forum", etc. étant donné que chacun des "modules" sont indépendants et donc ne devrait pas, dans une certaine philosophie, être additionnés ensemble. Attention, je ne parle pas de groupe d'utilisateurs, mais de création de regroupement de droits. Modifié 18 Mars 2005 par Xenon_54
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant