Հաճախ պատահում է, որ անհրաժեշտ է այցելուներին բաժանել ցանկալիի և անցանկալիի, իսկ կայքի որոշ էջեր տեսնել հնարավորություն տալ միայն նրանց, ովքեր ունեն օգտանուն և գաղտնաբառ: Ինչպե՞ս դա անել, օրինակ, սերվերի կողմից գրված լեզվով PHP:
Հրահանգներ
Քայլ 1
Եկեք կազմակերպենք ձեր էջերը չարտոնված այցելուներից պաշտպանելու ամենադյուրին ճանապարհը: Այցելուն լիազորված լինելու մասին տեղեկատվության կրողը կլինի նիստը: Session- ը բրաուզերի բլիթների անալոգն է զննարկչում, միայն մի տարբերությամբ, որ դրանք ստեղծվում են ոչ թե մեր համակարգչում, այլ սերվերում: Եվ դրանք օգտագործվում են նույն նպատակով, ինչ թխուկները ՝ մեր մասին տարբեր տեղեկություններ պահելու համար, մինչ մենք մեկ կայքի էջից էջ ենք անցնում: Երբ փակում ենք զննարկիչը, սերվերը ոչնչացնում է այս նստաշրջանը, և հաջորդ անգամ, երբ մուտք գործենք, դա ստեղծում է նորը: Մենք օգտագործում ենք այս սերվերի մեխանիզմը ՝ գրանցելու համար, թե արդյոք օգտվողն արդեն մուտք է գործել նիստ, թե ոչ: Կարդալով այս տեղեկատվությունը, երբ այցելուը էջ է խնդրում, php- գրությունը կամ կբացի մուտք դեպի գաղտնաբառով պաշտպանված էջեր, կամ էլ կառաջարկի մուտքագրել օգտվողի անուն և գաղտնաբառ:
Քայլ 1. Ստեղծեք էջ մուտքի և գաղտնաբառ մուտքագրելու համար: Լիազորման ձևի HTML կոդն իր ամենապարզ տեսքով կարող է ունենալ այսպիսի տեսք.
Մուտք
Գաղտնաբառ
Այստեղ (ֆայլի հենց սկզբում) մենք կավելացնենք php- կոդ, որը կստուգի այցելուի կողմից մուտքագրված օգտագործողի անվան և գաղտնաբառի ճիշտությունը: Սկզբում մենք կգրենք.
session_start ();
Այս հրամանը սկսում է նոր նստաշրջան, եթե այն դեռ չի ստեղծվել այս այցելուի համար:
Դրանից հետո եկեք ստուգենք, թե արդյոք սեսիան ունի «userName» անունով փոփոխական - այն կպահի անունը, եթե այցելուն արդեն մուտք է գործել համակարգ: Եթե այդպիսի փոփոխական կա, այցելուին վերահասցեագրեք հիմնական էջ (index.php) և ավարտեք այս php սցենարի կատարումը.
եթե ($ _ SESSION ['userName']) {{
վերնագիր («Գտնվելու վայրը. index.php»);
ելք;
}
Մնացած ծածկագիրը կկատարվի միայն այն դեպքում, եթե օգտվողը դեռ չի մուտքագրել ճիշտ օգտվողի անուն և գաղտնաբառ: Եկեք նշենք, թե որ մուտքն ու գաղտնաբառը պետք է համարել ճիշտ.
$ validName = 'Ես իմն եմ';
$ validPass = 'գաղտնի գաղտնաբառ';
Դրանից հետո մենք ստուգում ենք ՝ տեսնելու համար, թե արդյոք ձևից ներկայացված արժեքները համապատասխանում են ճիշտին: Քանի որ մենք ձևով նշել ենք POST տվյալների փոխանցման մեթոդը, դրանք պետք է կարդալ $ _POST սուպեր գլոբալ փոփոխականից.
եթե ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
վերնագիր («Գտնվելու վայրը. index.php»);
ելք;
}
Այստեղ գանգուր ամրացումների կոդը {} կկատարվի օգտագործողի անվան և գաղտնաբառի ճիշտ արժեքներով: $ _SESSION ['userName'] = $ validName տողում; ma մենք նստաշրջանում գրում ենք «userName» անունով փոփոխական, որը պարունակում է այժմ լիազորված օգտվողի մուտքը: Սա կլինի այն նշանը, որ մուտքը նրա համար բաց է ամենուր, քանի դեռ վավեր է նրա ընթացիկ նստաշրջանը:
Եվ եթե սխալ տվյալներ մուտքագրվում են ձև, ավելացրեք համապատասխան հաղորդագրությունը.
ուրիշ արձագանք »
Մուտք կամ գաղտնաբառ սխալ է:
;
Բոլոր ծածկագրերը, որոնք պետք է պահվեն login.php անունով ֆայլում, կունենան այսպիսի տեսք.
<? php
session_start ();
եթե ($ _ SESSION ['userName'])) {
վերնագիր («Գտնվելու վայրը. index.php»);
ելք;
}
$ validName = 'Ես իմն եմ';
$ validPass = 'գաղտնի գաղտնաբառ';
եթե ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
վերնագիր («Գտնվելու վայրը. index.php»);
ելք;
}
ուրիշ արձագանք »
Մուտք կամ գաղտնաբառ սխալ է:
;
?>
Մուտք
Գաղտնաբառ
Քայլ 2
Քայլ 2. Ստեղծեք թույլտվության բլոկ - առանձին ֆայլ, որը միացված կլինի գաղտնաբառի պաշտպանության կարիք ունեցող յուրաքանչյուր էջի: Այս ֆայլը կպարունակի միայն php- կոդ, ուստի դրա ընդլայնումը կլինի «php», և մենք նրան այդ ֆայլերի համար ավանդույթի համաձայն անուն կտանք `« auth », այսինքն` «auth.php»: Եվ այստեղ նույնպես, <? Php թեգը բացելուց անմիջապես հետո, պետք է լինի սեսիա սկսելու հրահանգ.
session_start ();
$ _SESSION սուպերգլանային զանգվածից մենք կարող ենք կարդալ նստաշրջանում պահված բոլոր փոփոխականները: Մենք պետք է ստուգենք «userName» փոփոխականի արժեքը. Եթե այցելուը դեռ մուտք չի գործել, ապա այն չի լինի զանգվածում, և մենք նրան կուղղորդենք էջ ՝ իր օգտվողի անունն ու գաղտնաբառը մուտքագրելու համար.
եթե (! $ _ SESSION ['լիազորված']) {
վերնագիր ("Գտնվելու վայրը. login.php");
ելք;
}
Բոլոր ծածկագրերը, որոնք պետք է պահվեն auth.php ֆայլում, կունենան այսպիսի տեսք.
<? php
session_start ();
եթե (! $ _ SESSION ['admin']) {
վերնագիր ("Գտնվելու վայրը. enter.php");
ելք;
}
?>
Քայլ 3
Քայլ 3. Այս ֆայլերը սերվերում պահելուց հետո այն կմնա բոլոր php- էջերում, որոնք պետք է պաշտպանված լինեն չարտոնված օգտվողներից `թույլտվության բլոկը միացնելու համար: Այսինքն ՝ յուրաքանչյուր php ֆայլի հենց սկզբում դուք պետք է տեղադրեք այս կոդը.
<? php
պահանջել «auth.php»;
?>
Եվ մուտքի գաղտնաբառը փոխելու համար հարկավոր է փոխել login.php ֆայլում այս փոփոխականների արժեքները.
$ validName = 'Ես իմն եմ';
$ validPass = 'գաղտնի գաղտնաբառ';
$ validName - մուտք, $ validPass - գաղտնաբառ: