Hoe Autoriseren?

Inhoudsopgave:

Hoe Autoriseren?
Hoe Autoriseren?

Video: Hoe Autoriseren?

Video: Hoe Autoriseren?
Video: Hoe autoriseer ik een document via de portal? | Instructievideo TriFact365 2024, April
Anonim

Het komt vaak voor dat het nodig is om bezoekers in te delen in wenselijk en ongewenst, en om sommige pagina's van de site alleen te laten zien aan degenen die een gebruikersnaam en wachtwoord hebben. Hoe doe je dit bijvoorbeeld in de server-side scripttaal PHP?

Hoe autoriseer ik?
Hoe autoriseer ik?

instructies:

Stap 1

Laten we de gemakkelijkste manier organiseren om uw pagina's te beschermen tegen onbevoegde bezoekers. De drager van informatie of de bezoeker geautoriseerd is, is de sessie. Een sessie is een analoog van cookies in een browser, met het enige verschil dat ze niet op onze computer, maar op de server worden aangemaakt. En ze worden voor hetzelfde doel gebruikt als cookies - om verschillende informatie over ons op te slaan terwijl we van pagina naar pagina van een site gaan. Wanneer we de browser sluiten, vernietigt de server deze sessie en de volgende keer dat we inloggen, maakt hij een nieuwe aan. We gebruiken dit servermechanisme om vast te leggen of de gebruiker al is aangemeld bij de sessie of niet. Als een bezoeker deze informatie leest, zal het php-script, wanneer een bezoeker een pagina opvraagt, ofwel de toegang tot met een wachtwoord beveiligde pagina's openen, of aanbieden om een gebruikersnaam en wachtwoord in te voeren.

Stap 1: Maak een pagina aan voor het invoeren van login en wachtwoord. De HTML-code van het machtigingsformulier in zijn eenvoudigste vorm kan er als volgt uitzien:

Log in:

Wachtwoord:

Hier (helemaal aan het begin van het bestand) zullen we php-code toevoegen die de juistheid van de door de bezoeker ingevoerde gebruikersnaam en wachtwoord zal controleren. In het begin zullen we schrijven:

session_start ();

Deze opdracht start een nieuwe sessie als deze nog niet voor deze bezoeker is aangemaakt.

Laten we dan eens kijken of de sessie een variabele heeft met de naam 'userName' - deze zal de naam opslaan als de bezoeker al is ingelogd. Als er zo'n variabele is, stuur de bezoeker dan door naar de hoofdpagina (index.php) en voltooi het uitvoeren van dit php-script:

if ($ _ SESSIE ['gebruikersnaam']) {

header ("Locatie: index.php");

Uitgang;

}

De rest van de code wordt alleen uitgevoerd als de gebruiker nog niet de juiste gebruikersnaam en wachtwoord heeft ingevoerd. Laten we aangeven welke login en wachtwoord als correct moeten worden beschouwd:

$ validName = 'Ik ben van mij!';

$ validPass = 'geheim wachtwoord';

Vervolgens controleren we of de ingevulde waarden uit het formulier met de juiste overeenkomen. Aangezien we de POST-gegevensoverdrachtmethode in het formulier hebben gespecificeerd, moeten ze worden gelezen uit de superglobale $ _POST-variabele:

if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['gebruikersnaam'] = $ validName;

header ("Locatie: index.php");

Uitgang;

}

Hier wordt de code tussen accolades {} uitgevoerd met de juiste waarden van de gebruikersnaam en het wachtwoord. Op de regel $ _SESSION ['userName'] = $ validName; ma we schrijven in de sessie een variabele genaamd 'userName' met daarin de login van de nu geautoriseerde gebruiker. Dit zal het teken zijn dat hij overal toegang heeft zolang zijn huidige sessie geldig is.

En als er onjuiste gegevens in het formulier zijn ingevoerd, voeg dan het juiste bericht toe:

anders echo"

Login of wachtwoord is onjuist!

;

Alle code die moet worden opgeslagen in een bestand met de naam login.php ziet er als volgt uit:

<? php

session_start ();

if ($ _ SESSIE ['gebruikersnaam']) {

header ("Locatie: index.php");

Uitgang;

}

$ validName = 'Ik ben van mij!';

$ validPass = 'geheim wachtwoord';

if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['gebruikersnaam'] = $ validName;

header ("Locatie: index.php");

Uitgang;

}

anders echo"

Login of wachtwoord is onjuist!

;

?>

Log in:

Wachtwoord:

Stap 2

Stap 2: Maak een autorisatieblok - een apart bestand dat wordt gekoppeld aan elke pagina die wachtwoordbeveiliging nodig heeft. Dit bestand zal alleen php-code bevatten, dus de extensie zal "php" zijn en we zullen het een naam geven volgens de traditie voor dergelijke bestanden - "auth", dat wil zeggen "auth.php". En ook hier, direct na de opening <? Php tag, zou er een instructie moeten zijn om een sessie te starten:

session_start ();

We kunnen alle variabelen lezen die in de sessie zijn opgeslagen uit de $ _SESSION superglobal array. We moeten de waarde van de variabele "userName" controleren - als de bezoeker nog niet is ingelogd, staat deze niet in de array en zullen we hem doorverwijzen naar de pagina voor het invoeren van zijn gebruikersnaam en wachtwoord:

if (! $ _ SESSIE ['geautoriseerd']) {

header ("Locatie: login.php");

Uitgang;

}

Alle code die in het auth.php-bestand moet worden opgeslagen, ziet er als volgt uit:

<? php

session_start ();

if (! $ _ SESSIE ['admin']) {

header ("Locatie: enter.php");

Uitgang;

}

?>

Stap 3

Stap 3: nadat we deze bestanden op de server hebben opgeslagen, blijven ze in alle php-pagina's die beschermd moeten worden tegen onbevoegde gebruikers om het autorisatieblok te verbinden. Dat wil zeggen dat u helemaal aan het begin van elk php-bestand deze code moet invoegen:

<? php

vereisen "auth.php";

?>

En om het toegangswachtwoord te wijzigen, moet u de waarden van deze variabelen in het login.php-bestand wijzigen:

$ validName = 'Ik ben van mij!';

$ validPass = 'geheim wachtwoord';

$ validName - login, $ validPass - wachtwoord.

Aanbevolen: