Det sker ofte, at det er nødvendigt at opdele besøgende i ønskeligt og uønsket, og kun give dem, der har et brugernavn og en adgangskode, mulighed for at se nogle sider på siden. Hvordan gør jeg dette f.eks. På serversiden script-sprog PHP?
Instruktioner
Trin 1
Lad os organisere den nemmeste måde at beskytte dine sider mod uautoriserede besøgende på. Bæreren af information om, hvorvidt den besøgende er autoriseret, er sessionen. En session er en analog af cookies i en browser med den eneste forskel, at de oprettes ikke på vores computer, men på serveren. Og de bruges til samme formål som cookies - til at gemme forskellige oplysninger om os, mens vi går fra side til side på et websted. Når vi lukker browseren, ødelægger serveren denne session, og næste gang vi logger ind, opretter den en ny. Vi bruger denne servermekanisme til at registrere, om brugeren allerede er logget ind i sessionen eller ej. Når en læser disse oplysninger, når en besøgende anmoder om en side, åbner php-scriptet enten adgang til adgangskodebeskyttede sider eller tilbyder at indtaste et brugernavn og en adgangskode.
Trin 1: Opret en side til indtastning af login og adgangskode. Godkendelsesformularens HTML-kode i sin enkleste form kan se sådan ud:
Log på:
Adgangskode:
Her (i begyndelsen af filen) tilføjer vi php-kode, der kontrollerer rigtigheden af det brugernavn og den adgangskode, der er indtastet af den besøgende. I starten vil vi skrive:
session_start ();
Denne kommando starter en ny session, hvis en ikke allerede er oprettet til denne besøgende.
Lad os derefter kontrollere, om sessionen har en variabel med navnet 'brugernavn' - den gemmer navnet, hvis den besøgende allerede er logget ind. Hvis der er en sådan variabel, skal du omdirigere den besøgende til hovedsiden (index.php) og afslutte udførelsen af dette php-script:
hvis ($ _ SESSION ['brugernavn']) {
header ("Location: index.php");
Afslut;
}
Resten af koden udføres kun, hvis brugeren endnu ikke har indtastet det korrekte brugernavn og adgangskode. Lad os angive hvilket login og adgangskode, der skal betragtes som korrekte:
$ validName = 'Jeg er min!';
$ validPass = 'hemmelig adgangskode';
Derefter kontrollerer vi, om de værdier, der indsendes fra formularen, matcher de rigtige. Da vi har angivet POST-dataoverførselsmetoden i formularen, skal de læses fra den superglobale variabel $ _POST:
hvis ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
header ("Location: index.php");
Afslut;
}
Her udføres koden i krøllede seler {} med de korrekte værdier for brugernavnet og adgangskoden. På linjen $ _SESSION ['userName'] = $ validName; ma vi skriver i sessionen en variabel med navnet 'userName', der indeholder login for den nu autoriserede bruger. Dette vil være det mærke, at adgang er åben for ham overalt, så længe hans nuværende session er gyldig.
Og hvis forkerte data indtastes i formularen, skal du tilføje den relevante meddelelse:
ellers ekko"
Login eller adgangskode er forkert!
;
Al den kode, der skal gemmes i en fil med navnet login.php, ser sådan ud:
<? php
session_start ();
hvis ($ _ SESSION ['brugernavn']) {
header ("Location: index.php");
Afslut;
}
$ validName = 'Jeg er min!';
$ validPass = 'hemmelig adgangskode';
hvis ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['brugernavn'] = $ gyldigt navn;
header ("Location: index.php");
Afslut;
}
ellers ekko"
Login eller adgangskode er forkert!
;
?>
Log på:
Adgangskode:
Trin 2
Trin 2: Opret en godkendelsesblok - en separat fil, der forbindes til hver side, der har brug for adgangskodebeskyttelse. Denne fil vil kun indeholde php-kode, så dens udvidelse vil være "php", og vi vil give den et navn ifølge traditionen for sådanne filer - "auth", det vil sige "auth.php". Og også her, umiddelbart efter åbningen <? Php-tag, skulle der være en instruktion om at starte en session:
session_start ();
Vi kan læse alle de variabler, der er gemt i sessionen fra $ _SESSION superglobal array. Vi er nødt til at kontrollere værdien af variablen "userName" - hvis den besøgende ikke har logget ind endnu, vil den ikke være i arrayet, og vi omdirigerer ham til siden for at indtaste sit brugernavn og adgangskode:
hvis (! $ _ SESSION ['autoriseret']) {
header ("Location: login.php");
Afslut;
}
Al den kode, der skal gemmes i auth.php-filen, ser sådan ud:
<? php
session_start ();
hvis (! $ _ SESSION ['admin']) {
header ("Location: enter.php");
Afslut;
}
?>
Trin 3
Trin 3: Når vi har gemt disse filer på serveren, forbliver det på alle php-sider, der skal beskyttes mod uautoriserede brugere for at forbinde autorisationsblokken. Det vil sige, at i starten af hver php-fil skal du indsætte denne kode:
<? php
kræve "auth.php";
?>
Og for at ændre adgangskoden skal du ændre værdierne for disse variabler i filen login.php:
$ validName = 'Jeg er min!';
$ validPass = 'hemmelig adgangskode';
$ validName - login, $ validPass - adgangskode.