Det hender ofte at det er nødvendig å dele besøkende i ønskelig og uønsket, og å gi muligheten til å se noen sider på nettstedet bare til de som har brukernavn og passord. Hvordan gjør jeg dette, for eksempel på serversiden skriptspråk PHP?
Bruksanvisning
Trinn 1
La oss organisere den enkleste måten å beskytte sidene dine mot uautoriserte besøkende. Bæreren av informasjon om hvorvidt den besøkende er autorisert vil være økten. En økt er en analog av informasjonskapsler i en nettleser, med den eneste forskjellen at de opprettes ikke på datamaskinen vår, men på serveren. Og de brukes til samme formål som informasjonskapsler - for å lagre forskjellig informasjon om oss mens vi går fra side til side på ett nettsted. Når vi lukker nettleseren, ødelegger serveren denne økten, og neste gang vi logger på, oppretter den en ny. Vi bruker denne servermekanismen for å registrere om brukeren allerede er logget på økten eller ikke. Når du leser denne informasjonen, når en besøkende ber om en side, vil php-skriptet enten åpne tilgang til passordbeskyttede sider, eller tilby å angi et brukernavn og passord.
Trinn 1: Opprett en side for å skrive inn pålogging og passord. HTML-koden til autorisasjonsskjemaet i sin enkleste form kan se slik ut:
Logg Inn:
Passord:
Her (helt i begynnelsen av filen) vil vi legge til php-kode som vil kontrollere korrektheten til brukernavnet og passordet som den besøkende oppgir. I begynnelsen vil vi skrive:
session_start ();
Denne kommandoen starter en ny økt hvis en ikke allerede er opprettet for denne besøkende.
La oss så sjekke om økten har en variabel som heter 'brukernavn' - den vil lagre navnet hvis den besøkende allerede er logget inn. Hvis det er en slik variabel, omdirigerer du besøkende til hovedsiden (index.php) og fullfører kjøringen av dette php-skriptet:
hvis ($ _ SESSION ['userName']) {
header ("Location: index.php");
exit;
}
Resten av koden vil bare bli utført hvis brukeren ennå ikke har angitt riktig brukernavn og passord. La oss angi hvilket innlogging og passord som skal betraktes som riktig:
$ validName = 'Jeg er min!';
$ validPass = 'hemmelig passord';
Deretter sjekker vi om verdiene som sendes inn fra skjemaet samsvarer med de riktige. Siden vi har spesifisert metoden for POST-dataoverføring i skjemaet, bør de leses fra den superglobale variabelen $ _POST:
hvis ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
header ("Location: index.php");
exit;
}
Her blir koden i krøllete bukseseler {} utført med de riktige verdiene for brukernavnet og passordet. På linjen $ _SESSION ['userName'] = $ validName; ma vi skriver i økten en variabel med navnet 'brukernavn' som inneholder påloggingen til den nå autoriserte brukeren. Dette vil være merket for at tilgang er åpen for ham overalt så lenge hans nåværende økt er gyldig.
Og hvis feil data er skrevet inn i skjemaet, legg til riktig melding:
annet ekko"
Pålogging eller passord er feil!
;
All koden som må lagres i en fil som heter login.php, vil se slik ut:
<? php
session_start ();
hvis ($ _ SESSION ['userName']) {
header ("Location: index.php");
exit;
}
$ validName = 'Jeg er min!';
$ validPass = 'hemmelig passord';
hvis ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
header ("Location: index.php");
exit;
}
annet ekko"
Pålogging eller passord er feil!
;
?>
Logg Inn:
Passord:
Steg 2
Trinn 2: Opprett en autorisasjonsblokk - en egen fil som skal kobles til hver side som trenger passordbeskyttelse. Denne filen inneholder bare php-kode, så utvidelsen vil være "php", og vi vil gi den et navn i henhold til tradisjon for slike filer - "auth", det vil si "auth.php". Og også her, umiddelbart etter åpningen <? Php-koden, bør det være en instruksjon om å starte en økt:
session_start ();
Vi kan lese alle variablene som er lagret i økten fra $ _SESSION superglobal array. Vi må sjekke verdien av "userName" -variabelen - hvis den besøkende ikke har logget på ennå, vil den ikke være i matrisen, og vi vil omdirigere ham til siden for å oppgi brukernavn og passord:
hvis (! $ _ SESSION ['autorisert']) {
header ("Location: login.php");
exit;
}
All koden som må lagres i auth.php-filen, ser slik ut:
<? php
session_start ();
hvis (! $ _ SESSION ['admin']) {
header ("Location: enter.php");
exit;
}
?>
Trinn 3
Trinn 3: etter at vi har lagret disse filene på serveren, vil det forbli på alle php-sider som må beskyttes mot uautoriserte brukere for å koble autorisasjonsblokken. Altså, helt i begynnelsen av hver php-fil, må du sette inn denne koden:
<? php
krever "auth.php";
?>
Og for å endre tilgangspassordet, må du endre verdiene til disse variablene i filen login.php:
$ validName = 'Jeg er min!';
$ validPass = 'hemmelig passord';
$ validName - pålogging, $ validPass - passord.