Gyakran előfordul, hogy szükséges a látogatókat kívánatos és nemkívánatosakra bontani, és lehetőséget kell adni a webhely egyes oldalainak megtekintésére csak azoknak, akiknek van felhasználónév és jelszó. Hogyan lehet ezt megtenni például a szerveroldali PHP nyelvben?
Utasítás
1. lépés
Szervezzük meg a legegyszerűbb módot arra, hogy megvédje oldalait az illetéktelen látogatóktól. A munkamenet lesz az információ hordozója arról, hogy a látogató engedélyezett-e. A munkamenet a böngészőben a sütik analógja, azzal az egyetlen különbséggel, hogy nem a számítógépünkön, hanem a szerveren jönnek létre. Ezeket ugyanarra a célra használják, mint a sütiket - különböző információk tárolására rólunk, miközben egyik webhelyről oldalra haladunk. Amikor bezárjuk a böngészőt, a szerver elpusztítja ezt a munkamenetet, és amikor legközelebb bejelentkezünk, létrehoz egy újat. Ezt a kiszolgáló mechanizmust használjuk annak rögzítésére, hogy a felhasználó már be van-e jelentkezve a munkamenetbe, vagy sem. Ezen információk elolvasása esetén, amikor a látogató kér egy oldalt, a php-szkript vagy hozzáférést nyit a jelszóval védett oldalakhoz, vagy felajánl egy felhasználónév és jelszó megadását.
1. lépés: Hozzon létre egy oldalt a bejelentkezés és a jelszó megadásához. Az engedélyezési forma HTML-kódja a legegyszerűbb formájában így nézhet ki:
Belépés:
Jelszó:
Itt (a fájl legelején) hozzáadunk egy php-kódot, amely ellenőrzi a látogató által megadott felhasználónév és jelszó helyességét. Az elején írjuk:
session_start ();
Ez a parancs új munkamenetet indít, ha még nem hoztak létre ilyen látogatót.
Ezután ellenőrizzük, hogy a munkamenetnek van-e a "userName" nevű változója - akkor tárolja a nevet, ha a látogató már be volt jelentkezve. Ha van ilyen változó, irányítsa át a látogatót a főoldalra (index.php), és fejezze be a php parancsfájl végrehajtását:
if ($ _ SESSION ['felhasználónév']) {
fejléc ("Hely: index.php");
kijárat;
}
A kód többi részét csak akkor hajtjuk végre, ha a felhasználó még nem adta meg a helyes felhasználónevet és jelszót. Jelöljük, melyik bejelentkezési nevet és jelszót kell helyesnek tekinteni:
$ validName = 'Az enyém vagyok!';
$ validPass = 'titkos jelszó';
Ezután ellenőrizzük, hogy az űrlapból beküldött értékek megegyeznek-e a helyesekkel. Mivel az űrlapban megadtuk a POST adatátviteli módszert, ezeket a $ _POST superglobal változóból kell kiolvasni:
if ($ _ POST ['felhasználónév'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
fejléc ("Hely: index.php");
kijárat;
}
Itt a göndör zárójeles zárójelű {} kódot a felhasználónév és a jelszó helyes értékével hajtjuk végre. A $ _SESSION ['felhasználónév'] = $ validName sorban; ma a munkamenetbe írunk egy 'userName' nevű változót, amely tartalmazza a most engedélyezett felhasználó bejelentkezését. Ez lesz az a jel, hogy a hozzáférés mindenhol nyitva áll előtte, amíg az aktuális munkamenet érvényes.
Ha pedig helytelen adatokat írnak be az űrlapba, adjuk hozzá a megfelelő üzenetet:
más visszhang"
Helytelen a bejelentkezés vagy a jelszó!
;
Az összes kód, amelyet el kell menteni a login.php nevű fájlba, így fog kinézni:
<? php
session_start ();
if ($ _ SESSION ['felhasználónév']) {
fejléc ("Hely: index.php");
kijárat;
}
$ validName = 'Az enyém vagyok!';
$ validPass = 'titkos jelszó';
if ($ _ POST ['felhasználónév'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
fejléc ("Hely: index.php");
kijárat;
}
más visszhang"
Helytelen a bejelentkezés vagy a jelszó!
;
?>
Belépés:
Jelszó:
2. lépés
2. lépés: Hozzon létre egy engedélyezési blokkot - egy külön fájlt, amely minden olyan oldalhoz csatlakozik, amely jelszóvédelmet igényel. Ez a fájl csak php-kódot fog tartalmazni, ezért kiterjesztése "php" lesz, és az ilyen fájlok hagyománya szerint nevet adunk neki - "auth", azaz "auth.php". És itt is, közvetlenül a nyitó <? Php tag után, kell lennie egy utasításnak a munkamenet indításához:
session_start ();
A munkamenetben tárolt összes változót kiolvashatjuk a $ _SESSION szuperglobális tömbből. Ellenőriznünk kell a "userName" változó értékét - ha a látogató még nem jelentkezett be, akkor az nem lesz a tömbben, és átirányítjuk az oldalra a felhasználónevének és jelszavának megadásához:
ha (! $ _ SESSION ['engedélyezett']) {
fejléc ("Hely: login.php");
kijárat;
}
Az összes kód, amelyet el kell menteni az auth.php fájlba, így fog kinézni:
<? php
session_start ();
ha (! $ _ SESSION ['admin']) {
fejléc ("Hely: enter.php");
kijárat;
}
?>
3. lépés
3. lépés: Miután ezeket a fájlokat elmentettük a szerverre, az összes php-oldalon meg fog maradni, amelyeket védeni kell az illetéktelen felhasználóktól az engedélyezési blokk összekapcsolásához. Vagyis az egyes php fájlok legelején be kell illesztenie ezt a kódot:
<? php
"auth.php" megkövetelése;
?>
A hozzáférési jelszó megváltoztatásához meg kell változtatnia ezen változók értékeit a login.php fájlban:
$ validName = 'Az enyém vagyok!';
$ validPass = 'titkos jelszó';
$ validName - bejelentkezés, $ validPass - jelszó.