Kuinka Valtuuttaa

Sisällysluettelo:

Kuinka Valtuuttaa
Kuinka Valtuuttaa

Video: Kuinka Valtuuttaa

Video: Kuinka Valtuuttaa
Video: Valtuuttaminen 2024, Saattaa
Anonim

Usein käy niin, että on tarpeen jakaa kävijät toivottaviksi ja ei-toivotuiksi ja antaa mahdollisuus nähdä joitain sivuston sivuja vain niille, joilla on käyttäjätunnus ja salasana. Kuinka tämä tehdään esimerkiksi palvelinpuolen komentosarjakielellä PHP?

Kuinka valtuutan?
Kuinka valtuutan?

Ohjeet

Vaihe 1

Järjestetään helpoin tapa suojata sivusi luvattomilta vierailijoilta. Istunto on tietojen haltija siitä, onko vierailijalla lupa. Istunto on selaimen evästeiden analogi, sillä ainoalla erolla, että ne eivät ole luotu tietokoneellemme vaan palvelimellemme. Ja niitä käytetään samaan tarkoitukseen kuin evästeet - erilaisten tietojen tallentamiseen meistä samalla kun siirrymme yhden sivuston sivulta toiselle. Kun suljet selaimen, palvelin tuhoaa tämän istunnon ja seuraavan kerran kirjautuessamme se luo uuden. Tätä palvelimekanismia käytämme tallentaaksemme, onko käyttäjä jo kirjautunut istuntoon vai ei. Kun luet nämä tiedot, kun kävijä pyytää sivua, php-komentosarja joko avaa pääsyn salasanasuojatuille sivuille tai tarjoaa käyttäjänimen ja salasanan antamisen.

Vaihe 1: Luo sivu kirjautumistunnuksen ja salasanan syöttämistä varten. Valtuutuslomakkeen HTML-koodi yksinkertaisimmassa muodossaan voi näyttää tältä:

Kirjaudu sisään:

Salasana:

Täällä (aivan tiedoston alussa) lisätään php-koodi, joka tarkistaa vierailijan antaman käyttäjänimen ja salasanan oikeellisuuden. Alussa kirjoitamme:

session_start ();

Tämä komento aloittaa uuden istunnon, jos vierailijalle ei ole vielä luotu istuntoa.

Tarkistetaan sitten, onko istunnossa muuttuja nimeltä userName - se tallentaa nimen, jos vierailija on jo kirjautunut sisään. Jos tällaista muuttujaa on, ohjaa kävijä pääsivulle (index.php) ja suorita tämä php-komentosarja loppuun:

jos ($ _ SESSION ['käyttäjänimi']) {

otsikko ("Sijainti: index.php");

poistua;

}

Loput koodista suoritetaan vain, jos käyttäjä ei ole vielä kirjoittanut oikeaa käyttäjänimeä ja salasanaa. Osoitetaan, mitä kirjautumistunnuksia ja salasanoja pidetään oikeina:

$ validName = 'Olen minun!';

$ validPass = 'salainen salasana';

Sitten tarkistamme, vastaavatko lomakkeelta lähetetyt arvot oikeita. Koska olemme määrittäneet lomakkeessa POST-tiedonsiirtomenetelmän, ne tulisi lukea superglobal-muuttujasta $ _POST:

jos ($ _ POST ['käyttäjänimi] == $ kelvollinenNimi && $ _POST [' userPass '] == $ validPass) {

$ _SESSION ['käyttäjänimi'] = $ kelvollinen nimi;

otsikko ("Sijainti: index.php");

poistua;

}

Tällöin kiharoiden aaltosulkeissa oleva koodi {} suoritetaan oikeilla käyttäjänimen ja salasanan arvoilla. Rivillä $ _SESSION ['käyttäjänimi'] = $ kelvollinenNimi; Me kirjoitamme istuntoon muuttujan nimeltä userName, joka sisältää nyt valtuutetun käyttäjän kirjautumistunnuksen. Tämä on merkki siitä, että pääsy on hänelle avoin kaikkialla, kunhan hänen nykyinen istuntonsa on voimassa.

Ja jos lomakkeeseen syötetään virheellisiä tietoja, lisää sopiva viesti:

muu kaiku"

Sisäänkirjautuminen tai salasana on väärä!

;

Kaikki koodi, joka on tallennettava login.php-nimiseen tiedostoon, näyttää tältä:

<? php

session_start ();

if ($ _ SESSION ['käyttäjänimi']) {

otsikko ("Sijainti: index.php");

poistua;

}

$ validName = 'Olen minun!';

$ validPass = 'salainen salasana';

jos ($ _ POST ['käyttäjänimi] == $ kelvollinenNimi && $ _POST [' userPass '] == $ validPass) {

$ _SESSION ['käyttäjänimi'] = $ kelvollinen nimi;

otsikko ("Sijainti: index.php");

poistua;

}

muu kaiku"

Sisäänkirjautuminen tai salasana on väärä!

;

?>

Kirjaudu sisään:

Salasana:

Vaihe 2

Vaihe 2: Luo valtuutuslohko - erillinen tiedosto, joka liitetään jokaiselle sivulle, joka tarvitsee salasanasuojausta. Tämä tiedosto sisältää vain php-koodin, joten sen laajennus on "php", ja annamme sille tällaisten tiedostojen perinteiden mukaisen nimen - "auth", eli "auth.php". Ja tässäkin heti avaavan <? Php -tunnisteen jälkeen pitäisi olla ohje istunnon aloittamiseksi:

session_start ();

Voimme lukea kaikki istuntoon tallennetut muuttujat $ _SESSION superglobal-taulukosta. Meidän on tarkistettava "userName" -muuttujan arvo - jos vierailija ei ole vielä kirjautunut sisään, sitä ei ole taulukossa, ja ohjaamme hänet sivulle käyttäjänimen ja salasanan syöttämistä varten:

jos (! $ _ SESSION ['valtuutettu']) {

otsikko ("Sijainti: login.php");

poistua;

}

Kaikki koodi, joka on tallennettava auth.php-tiedostoon, näyttää tältä:

<? php

session_start ();

jos (! $ _ SESSION ['admin']) {

otsikko ("Sijainti: enter.php");

poistua;

}

?>

Vaihe 3

Vaihe 3: Kun nämä tiedostot on tallennettu palvelimelle, ne pysyvät kaikilla php-sivuilla, jotka on suojattava luvattomilta käyttäjiltä valtuutuslohkon yhdistämiseksi. Eli jokaisen php-tiedoston alussa sinun on lisättävä tämä koodi:

<? php

vaadi "auth.php";

?>

Ja salasanan vaihtamiseksi sinun on muutettava näiden muuttujien arvot login.php-tiedostossa:

$ validName = 'Olen minun!';

$ validPass = 'salainen salasana';

$ validName - kirjautuminen, $ validPass - salasana.

Suositeltava: