Registrering med tilgangskontroll på PHP
Ved tilføyelse av brukerrettigheter må vi gjøre
endringer i vår registrering. Nå når vi registrerer
en bruker må vi i INSERT-spørringen spesifisere
hans status.
Vanligvis ved initial registrering mottar alle brukere
av nettstedet vårt den laveste statusen,
det vil si i vårt tilfelle 'user':
<?php
$query = "INSERT INTO users
SET login='$login', password='$password', 'status'='user'";
?>
Høyere statuser tildeles vanligvis av administrator. Han i adminpanelet ser brukerlisten og kan gjøre hvem som helst til, for eksempel, administrator.
Hvordan vil da den første administratoren oppstå på nettstedet? Den enkleste måten: registrer en vanlig bruker og via PhpMyAdmin gjøre ham til admin.
Mer komplisert: ved første oppstart på hosting kjøre installasjonen av nettstedet, spør ved hjelp av et skjema om brukernavn og passord og registrer den aller første brukeren av nettstedet, og tilordne ham administratorstatus.
Endre registreringskoden slik at alle tilføyede
brukere mottar statusen 'user'.
Endre manuelt for en eller annen bruker
hans status til 'admin'. Autentiser deg
under denne brukeren.
Lag en side admin.php, som
bare vil ha tilgang for brukere med
status 'admin'.
Vis på siden admin.php en liste
over alle registrerte brukere av nettstedet ditt i form av en tabell. La det i tabellen være
to kolonner: brukernavn og status.
Modifiser den forrige oppgaven slik at det dukker opp en tredje kolonne, med en lenke, som admin kan bruke til å slette enhver bruker.
Modifiser den forrige oppgaven slik at tabellrader med administratorer får rød farge, og med vanlige brukere - grønn.
Modifiser den forrige oppgaven slik at det dukker opp enda en kolonne. I denne kolonnen kan admin endre brukerrettigheter. Gjør slik at for alle vanlige brukere står det en lenke gjør ham til admin, og for admin - en lenke gjør ham til bruker.
Gjør slik at på alle sider av nettstedet, i headeren vil en registrert bruker se sitt brukernavn og status.
Modifiser den forrige oppgaven slik at for administratorer i headerens nettsted også vises en lenke til adminpanelet.