Rechtensysteem

Door Eris -, 24 jaar geleden, 6.856x bekeken

Een goede manier hoe je de rechten bepaalt van de bezoekers/leden

Gesponsorde koppelingen

Inhoudsopgave

  1. Uitleg
  2. Rechten berekenen
  3. Flag berekenen

 

Er zijn 16 reacties op 'Rechtensysteem'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Steff   an
Steff an
24 jaar geleden
 
0 +1 -0 -1
weet ik zo ook wel hoor ;p
Bram Z
Bram Z
24 jaar geleden
 
0 +1 -0 -1
Dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$rechten
['0'] == "Leden";
$rechten['1'] == "Moderator";
$rechten['2'] == "Nieuws";
$rechten['3'] == "Nieuwsbrief";
$rechten['4'] == "Leden Beheren";
?>

kan ook zo :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$rechten
[] == "Leden";
$rechten[] == "Moderator";
$rechten[] == "Nieuws";
$rechten[] == "Nieuwsbrief";
$rechten[] == "Leden Beheren";
?>

kiest hij zelf de nummers vanaf 0
Ano Niem
Ano Niem
24 jaar geleden
 
0 +1 -0 -1
Deze tuto gaat vast nog wel eens van pas komen :)

ff kleine opmerking:
Die functie kan ook zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
function calc_flag($array)
{

 $num = 0;
 for($i = 0;$i < count($array) /* aantal velden */ ;$i++)
 {

    if($array[$i] == 1)
    {

        $num = pow(2,$i) + $num;
    }
 }

 return $num;
}
?>

Dan zit je niet aan die 5 flags vast ;)
Eris -
Eris -
24 jaar geleden
 
0 +1 -0 -1
Hellaas werkt het niet :)

Dit geeft heel raar een error of berekend hem niet goed :)

Daarom moest het hellaas zo. Heb het geprobeerd
Ano Niem
Ano Niem
24 jaar geleden
 
0 +1 -0 -1
vreemd..
Maarja, als je meerdere rechten wilt toevoegen hoef je bijv alleen function.php aan te passen dus maakt opzich niet zoveel uit :)
Of je maakt in je config bestandje (/ database) een variabele aan met het aantal verschillende rechten.
Mitch X
Mitch X
24 jaar geleden
 
0 +1 -0 -1
LoL :D
Jij ookal met Adjes idee bezig geweest :)
B a s
B a s
24 jaar geleden
 
0 +1 -0 -1
alleen weet je op de eerste methode wel meteen waar je aan toe bent.. :)
Vincent elschot
vincent elschot
24 jaar geleden
 
0 +1 -0 -1
Vergeet die array en al dat POW gedoe, PHP kan ook bitwise werken en dat scheelt best wel een beetje:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
// Definieer namen voor de rechten zodat ze makkelijk in PHP te gebruiken zijn
DEFINE('AUTH_RECHT_ADMIN', 1);
DEFINE('AUTH_RECHT_LEZEN', 2);
DEFINE('AUTH_RECHT_SCHRIJVEN', 4);


// $iMijnRechten is een optelling van de rechten die de gebruiker heeft.
// $iMijnrechten kun je bv in een INT kolom in de database zetten

$iMijnRechten = AUTH_RECHT_ADMIN + AUTH_RECHT_LEZEN;


// Simuleer een stuk applicatie waarin twee dingen worden gedaan als de gebruiker rechten heeft:
// Mag ik schrijven?

if (heeftRecht($iMijnRechten, AUTH_RECHT_SCHRIJVEN))
{

  echo 'Ja ik mag schrijven<BR>';
}

else
{
  echo 'Nee ik mag niet schrijven<BR>';
}




// ben ik admin?
if (heeftRecht($iMijnRechten, AUTH_RECHT_ADMIN))
{

  echo 'Ja ik ben adminn<BR>';
}

else
{
  echo 'Nee ik ben geen adminn<BR>';
}




// De functie om te bepalen of iemand een recht heeft
function heeftRecht($piRechtenVanUser , $piRecht)
{

  return $piRechtenVanUser & $piRecht;
}


?>



Maar het best kun je normaliseren in je database;
- een tabel met mogelijke rechten (rechtid, naam)
- een tabel met koppeling tussen 1 recht en 1 gebruiker per record.

Dan kun je controleren of iemand een recht heeft door gewoon te kijken of er een record bestaat waarin dat userid en dat recht voorkomen. (en die data kun je eventueel weer cachen in een session als je die tenminste goed up-to-date houdt!)
Ano Niem
Ano Niem
24 jaar geleden
 
0 +1 -0 -1
Jaap,
Heb je trouwens nog iets van een klein voorbeeld pagina?
Ik heb me broertje hiernaar doorverwezen voor zijn site en die snapt er dus de ballen van ;)
(en ik weiger hem nog iets uit te leggen. Ik heb ook zelf me weg gevonden in php)
Eris -
Eris -
24 jaar geleden
 
0 +1 -0 -1
Ja mijn eigen site :| Maar om daar nu admin login voor te geven :|
Elwin - Fratsloos
Elwin - Fratsloos
24 jaar geleden
 
0 +1 -0 -1
Maak anders wat screenies en post die ergens...

Elwin


24 jaar geleden
 
0 +1 -0 -1
halllo
ookal ben ik beginner met php
ik snap er helaas niet veel van
misgien een domme vraag:
maar als ik zeg maar alles kopieer ( alleen die codes dan ! :P ) heb ik dan gewoon dat rechtensysteem wat daar staat ( 4 verschillende) ??
want dan doe k een beetje simpel en neem k ut over ;) naja k kan wel die rechtennamen verandere, ofnie?
help mij please
(al ben k nie lid van deze site...)
Greets
een beginner
Robert
Robert
23 jaar geleden
 
0 +1 -0 -1
ik krijg geen invoervelden...vreemd...
Woopie100
Woopie100
23 jaar geleden
 
0 +1 -0 -1
Met deze manier kan je ook TRUE & FALSE doorgeven zonder dat het teveel dataverkeer kost.

Bijvoorbeeld TRUE-FALSE-FALSE-TRUE

1001
1+0+0+8=9

9 is kleiner dan 1001 dus minder data
Mitch X
Mitch X
23 jaar geleden
 
0 +1 -0 -1
Valt wel mee ;)
9 == 1001 :D
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
The Ultimate
The Ultimate
19 jaar geleden
 
0 +1 -0 -1
Ben bezig een rechtensysteem te maken voor: www.rechtenstudent.net/forum/index.php

Ik zie dat iedereen het heeft over rechten gekoppeld aan getallen en users/members die vervolgens weer aan de rechten worden gekoppeld.

Waar het in mijn ogen op neer komt is derhalve dat men bij een bepaalde gebruiker een bepaald recht/getal kan opvragen.

Waarom dan dus niet gewoon een extra colomn 'user_right' aan table USERS toevoegen en daar bijvoorbeeld het getal '4' in plaatsen voor bijv. mods?

Vervolgens kun je toch het recht geven om te wijzigen wanneer user_right = '4' en dit recht niet geven wanneer user_right != '4'.

Graag reactie aangezien het nut mij kennelijk niet helemaal duidelijk is.

Alvast bedankt!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Uitleg
  2. Rechten berekenen
  3. Flag berekenen

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.