login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mensen crewleden kunnen maken

Offline Grayen - 13/09/2006 15:03 (laatste wijziging 13/09/2006 15:04)
Avatar van GrayenPHP ver gevorderde Ik ben nu al een tijdje bezig met een systeem, alles werkt goed, alleen nu ben ik bezig met de laatste paar dingen waaronder de beveiliging, ook dat is me totzover gelukt, alleen nu zit ik met een probleem, hoe kan ik mensen crewleden laten worden en ze alleen het recht geven zodat ze alleen maar een bepaald deel van bijvoorbeeld het forum kunnen wijzigen? Ik heb hier al een week over lopen nadenken, en ben tot iets gekomen, maar helaas zit ik hierbij altijd met het probleem dat ik per php pagina (ik heb er nu nogal wat) de controle voor ieder moet gaan maken, ik heb hiervoor een functie gemaakt, maar ik heb dan altijd de categorie id voor nodig, alleen wat nou als ik zeg ik wil iemand alleen maar een deel van mijn CMS laten wijzigen, daarbij heb ik niet alijtd een categorie aangegeven in de url. Ik kan dit wel ophalen maar moet dan een stuk of vier queries draaien voor 1 categorie id. Ik zou graag van jullie willen weten hoe jullie zoiets zouden maken. Ik heb het als volgt gemaakt:

ik heb bij elke categorie en veld gemaakt genaamd admin met daarin de id van het recht die bij die categorie behoord (dus als je dat recht hebt kun je die categorie aanpassen)

ik heb een tabel aangemaakt met daarin alle rechten (de id staat dus in het admin veld van categorieen)

en ik heb een tabel aangemaakt met daarin alle rechten van een lid, dus bijv dit:

id = 1, gebruikers_id = 12, recht = 9
dit zijn allemaal id's

en dan heb ik een functie gemaakt die dit doet:

toegang(level, categorie, recht)
als er een categorie is opgegeven gaat hij met queries zo achterhalen of jij wel toegang hebt, dit gebeurt ook als je recht invult alleen hoeft hij dan minder queries uit tevoeren, en level is de basis controle waarmee je dus controleerd, of je sowieso wel toegang hebt dus 1= lid, 2 = mod, 3 = smod enz.

ik hoop dat het zo een beetje duidelijk is.

mijn vraag is weet iemand hoe je dit op een andere manier kunt doen, zodat je veel minder moeilijk hoeft te doen?

sorry voor het lange verhaal maar het is moeilijk om uit te leggen

11 antwoorden

Gesponsorde links
Offline Grayen - 13/09/2006 15:19
Avatar van Grayen PHP ver gevorderde kort zou het zijn: hoe kan van leden crewleden maken? hoe moet ik dat aanpakken? 
Offline Stijn - 13/09/2006 15:22
Avatar van Stijn PHP expert @Matthijs: stop met die stomme reacties te geven.
@topic: Ik zou het zo doen:

members.php
|id|name|password|level|

in die level veld zou ik enum(0,1,2) zetten (die nummers kan je veranderen naargelang je levels). In mijn voorbeeld is
0 = lid
1 = moderator
2 = admin

dan kan je bijvoorbeeld deze PHP code hebben
  1. <?php
  2.  
  3. switch( $row['level'] ) {
  4.  
  5. default: //geen acties
  6. break;
  7.  
  8. case 0: //geen acties
  9. break;
  10.  
  11. case 1: //moderator acties
  12. break;
  13.  
  14. case 2: //admin acties
  15. break;
  16.  
  17. }
  18. ?>


en dan moet je in je tabel 'forum' niets zetten van levels ofzo voor admins/moderator/members en weet ik veel 

snap je beetje mijn idee?

mvg stijn
Offline Grayen - 13/09/2006 15:29
Avatar van Grayen PHP ver gevorderde ja ik snap het, alleen dit is niet wat ik zoek, als het zoiets moest worden was ik nu al klaar geweest, maar in jouw manier kan ik een moderator niet alleen een bepaald gedeelte laten wijzigen, hij kan dan gelijk het hele forum wijzigen (in forum is het niet zo erg maar cms enzo wel), en helaas kan je niet iedereen vertrouwen op hun woord , en kan een moderator gelijk alles op het forum doen, terwijl ik hem alleen een gedeelte wil toewijzen 
Offline Stijn - 13/09/2006 15:31
Avatar van Stijn PHP expert dan moet je een veld toevoegen bij de members tabel, bijvoorbeeld: 'access_area' en dan kan je terug met ID's werken of defined values

stijn
Offline Grayen - 13/09/2006 15:39
Avatar van Grayen PHP ver gevorderde dan kom ik helaas uiteindelijk ongeveer weer uit op het gene wat ik nu heb, want je moet ook aangeven waar je je bevind, dus zoals jij zegt zou ik een level en categorie moeten opgeven (categorie want je moet toch weten waar je bevind, want met het lid id, kan je met een query achterhalen waar hij heen mag (acces_area) maar dan moet je natuurlijk wel weten of hij zich nu wel in de acces_area bevind 
Offline Stijn - 13/09/2006 15:56
Avatar van Stijn PHP expert ik zei niet dat het eenvoud is. misschien als je eens je sql structuur op plaatscode.be ofzo eens plaatst dan kan ik beter inzicht krijgen van je structuur.
Offline Grayen - 13/09/2006 15:58 (laatste wijziging 13/09/2006 16:01)
Avatar van Grayen PHP ver gevorderde
Citaat:
ik zei niet dat het eenvoud is.


heb ik dat dan gezegd (dit is het moeilijkste tot nu toe), ok ik zal het op plaatscode.be zetten

dit is het:
http://plaatscode.be/2614/
Offline ikkedikke - 13/09/2006 16:20
Avatar van ikkedikke PHP expert http://www.site...&id=85
kijk daar onderaan eens naar het rechtensysteem..
Offline Grayen - 13/09/2006 16:31
Avatar van Grayen PHP ver gevorderde ... ik heb dat ook al bedacht, maar dan zit je nog met een probleempje, ik wil het per categorie, dus dan zou ik voor elke categorie zo'n recht aanmaken, en dat dan voor cms, forum, download, nieuws, dan word het cijfer gigantisch als ik binair tel, ik denk dat ik dan maar zo hou, is het maar meer werk, en wat onhandig, bedankt voor het helpen, helaas kan het gewoon niet anders, wel iets anders maar het komt eigenlijk steeds op het zelfde neer.
Offline Stijn - 13/09/2006 17:16
Avatar van Stijn PHP expert bekijk de SQL/PHP code eens van php-nuke , dat helpt soms 
Offline Grayen - 13/09/2006 17:18 (laatste wijziging 13/09/2006 17:49)
Avatar van Grayen PHP ver gevorderde ik zal het is downloaden en bekijken bedankt voor de tip

ik heb het bekeken en als goed is doen zij het per onderdeel dus bijv forum dus dan kan je gelijk alles wijzigen in het forum, tenminste als ik het goed zie, php-nuke heeft nou niet echt een kleine bron code  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.179s