Ik heb nu een goed werkend register en inlogscherm in php voor mijn localhost.
Als je dan bent geregistreerd en ingelogd ben kom je in het gebruikersmenu maar nu wil ik hiernaast ook nog een admin gebruiker instellen die zodra ingelogd meer bevoegdheden heb (zodat ik ook in mijn toevoeg.php scherm kom waar de gewone gebruiker niet in mag.
Hoe pas ik mijn register en inlog php aan om dit voor elkaar te krijgen
Het ligt eraan hoe je het rechtensysteem wilt indelen:
- Je kan met levels werken, waarbij elke rol overervend is en steeds meer rechten kent. (user - redacteur- hoofdredacteur - systeembeheerder), in dit geval het makkelijkste.
- Je kan ook met gebruikersgroepen en rechten werken waarbij je de rechten koppelt aan een gebruikersgroep (rol) en deze groepen aan de gebruiker. (RBAC-systeem)
Een hoop mogelijkheden. Dus probeer eerst eens op papier te zetten wat je precies wilt, en hoe het moet gaan werken.
Maak in je gebruikers tabel van je database een kolom aan met of de gebruiker admin rechten heeft. Als je dan inlogt in je inlogfunctie een query draaien die kijkt in je tabel of die gebruiker admin is. Zoja onthoud dat in je sessie samen met je gebruikersnaam. Daarna kun je kijken per pagina of er een sessie admin is, anders redirect je hem naar een andere pagina.
>> Hoe pas ik mijn register en inlog php aan om dit voor elkaar te krijgen
Niet!
Voor veel mensen is inloggen iets magisch of moeilijk te doorgronden lijkt het wel. Je moet je eens goed gaan afvragen wat inloggen nou eigenlijk is. Dan zul je er achter komen dat het eigenlijk alleen maar een methode is die van een anonieme gebruiker een ietwat minder anonieme gebruiker maakt.
Aan elk request gericht aan de webserver van jou website hangt enkel een ip-nummer vast. Aangezien achter 1 ip-nummer een heel kantoorgebouw kan zitten zegt het ons dus niets over de persoon die de request verstuurd. De persoon is gewoon compleet anoniem. Door hem te laten registreren en zijn email te verifiëren hebben we een aanknopingspunt. We weten nu dat het e-mailadres bij deze persoon hoort. Zijn naam en adres kan allemaal nog verzonnen/vervalst zijn. Toch geeft het jou de mogelijkheid om verschillende personen van elkaar te onderscheiden en voor al jouw gebruikers zodoende instellingen weg te schrijven in de database. één zo een instelling is de ROL die een persoon speelt. Dit kan van alles zijn maar de meest voorkomende naast de standaard gebruiker is misschien wel de administrator of kortweg admin. Het is dus gewoon een database handeling of iemand nu wel of geen admin is. Gewoon een extra kolom in de users tabel en het inloggen en registreren staat er helemaal los van.
Mja, en het is niet zo dat je bij het registreren aangeeft "ik wil ook graag admin-rechten hebben". Het toekennen van privileges (op wat voor manier dan ook) vindt meestal op een andere manier (en op een andere plek) plaats.
Initieel zal iemand standaard méér moeten kunnen dan de rest. Als je bijvoorbeeld een Content Management Systeem (CMS) installeert op jouw webruimte registreer je jezelf niet alleen, maar registreer je je tevens als administrator. Dit is wellicht de uitzondering op de regel waarbij je jezelf privileges toekent bij registratie.
Als je zelf een systeem uitbouwt, dan zul je in eerste instantie jezelf rechten moeten geven en vervolgens kun je via een "chain of trust" (en een soort van controlepaneel :)) andere mensen extra bevoegdheden geven.
Nu kan het initieel uitkomst bieden een user-tabel te voorzien van een extra kolom is_admin of wat dan ook, maar als je een iets flexibelere opzet wilt hebben die niet echt veel ingewikkelder is maak je een rechten-( of rollen-)tabel en een koppeltabel die deze en de user-tabel met elkaar verbindt. En als je dan nog wat beheerschermpjes maakt (die uitsluitend voor de admin toegankelijk zijn!) dan ben je al een heel eind.