Ինչպես լիազորել

Բովանդակություն:

Ինչպես լիազորել
Ինչպես լիազորել

Video: Ինչպես լիազորել

Video: Ինչպես լիազորել
Video: Ինչպես ԱԺ-ն անձեռնմխելիությունից զրկեց Ծառուկյանին և ազատազրկելու լիազորություն տվեց դատախազությանը 2024, Դեկտեմբեր
Anonim

Հաճախ պատահում է, որ անհրաժեշտ է այցելուներին բաժանել ցանկալիի և անցանկալիի, իսկ կայքի որոշ էջեր տեսնել հնարավորություն տալ միայն նրանց, ովքեր ունեն օգտանուն և գաղտնաբառ: Ինչպե՞ս դա անել, օրինակ, սերվերի կողմից գրված լեզվով 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 - գաղտնաբառ:

Խորհուրդ ենք տալիս: