Autor | Zpráva | ||
---|---|---|---|
aaaBB Profil * |
#1 · Zasláno: 30. 10. 2007, 17:02:16
Dobry den,
potrebujem seriozne poradit ohladne prav pre uzivatelov. Priznam sa, ze som precital par clankov, ale stale neviem najst to idealne riesenie. Potrebujem X tipov opravneni, dajme tomu ze 10 opravneni a moja myslienka je, ze pri uzivatlovi bude bunka PRAVA tipu varchar 10 kde bude napr: NNAANNNNNA a defaulte bude NNNNNNNNNN Teraz pomocou strpos zistim $_SESSION['1pravo'] = 'N'; $_SESSION['2pravo'] = 'N'; $_SESSION['3pravo'] = 'A'; . . . $_SESSION['10pravo'] = 'A'; Je to takto dobre? Nevadi, ze bude tolko vela $_SESSION? Ako to zjednodusit? a mohol by som to napisat cez pole? teda: $_SESSION['pravo']['diskusie'] = 'N'; $_SESSION['pravo']['clanky'] = 'N'; zrejme chapete. Verim, ze mi tu niekto invsetuje chvilku casu, pretoze mi na to dost zalezi. Dakujem vopred moc krat. |
||
tiso Profil |
#2 · Zasláno: 30. 10. 2007, 17:27:13
Vadí, stačí Ti jedna session:
$_SESSION['prava']='NNAANNNNNA' a budeš sa odkazovať na jednotlivé znaky z nej... |
||
aaaBB Profil * |
#3 · Zasláno: 30. 10. 2007, 18:56:05
Wow, verim ti :o) a este mi povec potom pre jednotlive sekcie to mam pisat takto:
if ( substr($_SESSION['prava'], 2, 3) == A) { vykonaj.. } else { neopravneny pristup. } Moze byt? Alebo da este lepsie? Dakujem moc krat. |
||
Alphard Profil |
#4 · Zasláno: 30. 10. 2007, 19:07:42
např. echo $_SESSION['prava']{3};
|
||
aaaBB Profil * |
#5 · Zasláno: 30. 10. 2007, 19:27:02
A este mi povedzte ako to vy mate vyriesenie s pravami? Podobne ako ja alebo inak?
Diky za odpoved. |
||
Mastodont Profil |
#6 · Zasláno: 30. 10. 2007, 19:38:22
IMHO jsou lepší čísla a bitový AND:
http://cz.php.net/manual/en/language.operators.bitwise.php http://www.litfuel.net/tutorials/bitwise.htm |
||
tiso Profil |
#7 · Zasláno: 30. 10. 2007, 19:58:14
Mastodont - to sú, nechcel som to prehnať :-)
|
||
aaaBB Profil * |
#8 · Zasláno: 30. 10. 2007, 20:03:56
Hm, precital som si to ale vobec tomu nechapem, vedel by si mi objasnit opre ten nas pripad?
|
||
Mastodont Profil |
#9 · Zasláno: 30. 10. 2007, 20:26:15
aaaBB
Máš to na té druhé stránce. Práva jsou uložena jako jedno číslo, vytvořené součtem jednotlivých práv: $read = 1; Lokální admin s právem editace příspěvků pak bude mít práva 48. Zápis $pravo & 32 vrátí true, protože v číslu 48 je 32 obsaženo. Čísla pro práva musí být samozřejmě volena tak, aby ze součtu šlo vždy jednoznačně jednotlivá práva určit, obvykle se bere číselná řada 1, 2, 4, 8, 16 atd. |
||
Časová prodleva: 16 let
|
0