Često se dogodi da je potrebno posjetitelje podijeliti na poželjne i nepoželjne, a neke stranice stranice dati priliku samo onima koji imaju korisničko ime i lozinku. Kako to učiniti, na primjer, u skriptnom jeziku na strani servera PHP?
Instrukcije
Korak 1
Organizirajmo najlakši način da zaštitimo vaše stranice od neovlaštenih posjetitelja. Nosilac informacija o tome je li posjetilac ovlašten bit će sesija. Sesija je analogni kolačićima u pregledniku, s jedinom razlikom što se ne kreiraju na našem računaru, već na serveru. A koriste se u istu svrhu kao i kolačići - za pohranu različitih podataka o nama dok idemo od stranice do stranice jedne stranice. Kada zatvorimo preglednik, server uništava ovu sesiju i sljedeći put kada se prijavimo, kreira novu. Koristimo ovaj poslužiteljski mehanizam za bilježenje je li korisnik već prijavljen u sesiju ili nije. Čitajući ove informacije, kada posjetitelj zatraži stranicu, php skripta će ili otvoriti pristup stranicama zaštićenim lozinkom, ili ponuditi unos korisničkog imena i lozinke.
Korak 1: Stvorite stranicu za unos prijave i lozinke. HTML kôd obrasca za autorizaciju u najjednostavnijem obliku može izgledati ovako:
Ulogovati se:
Lozinka:
Ovdje (na samom početku datoteke) ćemo dodati php-kod koji će provjeriti ispravnost korisničkog imena i lozinke koje je posjetitelj unio. Na početku ćemo napisati:
session_start ();
Ova naredba započinje novu sesiju ako ona već nije kreirana za ovog posjetitelja.
Zatim provjerimo ima li sesija varijablu koja se zove 'userName' - ona će pohraniti ime ako je posjetitelj već bio prijavljen. Ako postoji takva varijabla, preusmjerite posjetitelja na glavnu stranicu (index.php) i završite s izvršavanjem ove php skripte:
if ($ _ SESSION ['userName']) {
zaglavlje ("Lokacija: index.php");
Izlaz;
}
Ostatak koda izvršit će se samo ako korisnik još nije unijeo ispravno korisničko ime i lozinku. Naznačimo koje prijave i lozinke treba smatrati ispravnima:
$ validName = 'Ja sam moj!';
$ validPass = 'tajna lozinka';
Zatim provjeravamo odgovaraju li vrijednosti predane iz obrasca tačne. Budući da smo specificirali metodu prijenosa podataka POST u obrascu, treba ih čitati iz superglobalne varijable $ _POST:
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
zaglavlje ("Lokacija: index.php");
Izlaz;
}
Ovdje će se kod u zavojima {} izvršiti s ispravnim vrijednostima korisničkog imena i lozinke. Na liniji $ _SESSION ['userName'] = $ validName; ma zapisujemo u sesiju varijablu pod imenom 'userName' koja sadrži prijavu sada ovlaštenog korisnika. To će biti oznaka da mu je pristup otvoren svuda dok je njegova trenutna sesija validna.
A u slučaju da se u obrazac unesu netačni podaci, dodajte odgovarajuću poruku:
inače odjek"
Prijava ili lozinka nisu tačni!
;
Sav kod koji treba spremiti u datoteku koja se zove login.php izgledat će ovako:
<? php
session_start ();
if ($ _ SESSION ['userName']) {
zaglavlje ("Lokacija: index.php");
Izlaz;
}
$ validName = 'Ja sam moj!';
$ validPass = 'tajna lozinka';
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
zaglavlje ("Lokacija: index.php");
Izlaz;
}
inače odjek"
Prijava ili lozinka nisu tačni!
;
?>
Ulogovati se:
Lozinka:
Korak 2
Korak 2: Stvorite autorizacijski blok - zasebnu datoteku koja će biti povezana sa svakom stranicom koja treba zaštitu lozinkom. Ova datoteka će sadržavati samo php-kôd, pa će njen nastavak biti "php", a mi ćemo joj dati ime prema tradiciji za takve datoteke - "auth", odnosno "auth.php". I ovdje bi također odmah nakon početne <? Php oznake trebala postojati uputa za započinjanje sesije:
session_start ();
Sve varijable koje su pohranjene u sesiji možemo pročitati iz superglobalnog niza $ _SESSION. Moramo provjeriti vrijednost varijable "userName" - ako se posjetitelj još nije prijavio, tada neće biti u nizu, a mi ćemo ga preusmjeriti na stranicu za unos korisničkog imena i lozinke:
if (! $ _ SESIJA ['ovlašteno']) {
zaglavlje ("Lokacija: login.php");
Izlaz;
}
Sav kod koji treba spremiti u datoteku auth.php izgledat će ovako:
<? php
session_start ();
if (! $ _ SESIJA ['admin']) {
zaglavlje ("Lokacija: enter.php");
Izlaz;
}
?>
Korak 3
Korak 3: nakon što ove datoteke spremimo na server, one će ostati na svim php-stranicama koje trebaju biti zaštićene od neovlaštenih korisnika da bi se povezao autorizacijski blok. Odnosno, na samom početku svake php datoteke trebat ćete umetnuti ovaj kod:
<? php
zahtijeva "auth.php";
?>
A da biste promijenili pristupnu lozinku, morat ćete promijeniti vrijednosti ovih varijabli u datoteci login.php:
$ validName = 'Ja sam moj!';
$ validPass = 'tajna lozinka';
$ validName - prijava, $ validPass - lozinka.