Qanday Avtorizatsiya Qilish Kerak

Mundarija:

Qanday Avtorizatsiya Qilish Kerak
Qanday Avtorizatsiya Qilish Kerak

Video: Qanday Avtorizatsiya Qilish Kerak

Video: Qanday Avtorizatsiya Qilish Kerak
Video: Qanday tavba qilish kerak? | Solihxon domla bilan suhbat 2024, Noyabr
Anonim

Tez-tez sodir bo'ladiki, tashrif buyuruvchilarni kerakli va istalmagan narsalarga ajratish va saytning ba'zi sahifalarini faqat foydalanuvchi nomi va parolga ega bo'lganlarga ko'rish imkoniyatini berish kerak. Buni, masalan, PHP server tomonida skript tilida qanday qilish kerak?

Qanday qilib avtorizatsiya qilishim mumkin?
Qanday qilib avtorizatsiya qilishim mumkin?

Ko'rsatmalar

1-qadam

Keling, sahifalaringizni ruxsatsiz tashrif buyuruvchilardan himoya qilishning eng oson usulini tashkil qilaylik. Mehmonning vakolatli ekanligi to'g'risida ma'lumot beruvchi sessiya bo'ladi. Sessiya - bu brauzerdagi cookie-fayllarning analogidir, faqat ularning farqi shundaki, ular bizning kompyuterimizda emas, balki serverda yaratilgan. Va ular cookie-fayllar bilan bir xil maqsadda - bitta sahifadan sahifaga o'tishda biz haqimizda turli ma'lumotlarni saqlash uchun ishlatiladi. Brauzerni yopganimizda, server ushbu seansni yo'q qiladi va keyingi safar tizimga kirganimizda, u yangisini yaratadi. Ushbu server mexanizmidan foydalanuvchi sessiyaga kirgan yoki kirmaganligini yozish uchun foydalanamiz. Ushbu ma'lumotni o'qiyotganda, mehmon sahifani talab qilganda, php-skript parol bilan himoyalangan sahifalarga kirish huquqini ochadi yoki foydalanuvchi nomi va parolni kiritishni taklif qiladi.

1-qadam: Kirish va parolni kiritish uchun sahifa yarating. Avtorizatsiya shaklining HTML kodi eng sodda ko'rinishida quyidagicha ko'rinishi mumkin:

Kirish:

Parol:

Bu erda (faylning boshida) biz tashrif buyuruvchi tomonidan kiritilgan foydalanuvchi nomi va parolning to'g'riligini tekshiradigan php-kodni qo'shamiz. Boshida biz yozamiz:

session_start ();

Agar ushbu tashrif buyuruvchi uchun hali yaratilmagan bo'lsa, ushbu buyruq yangi seansni boshlaydi.

Keling, sessiyada 'userName' nomli o'zgaruvchisi bor-yo'qligini tekshirib ko'ramiz - agar mehmon allaqachon tizimga kirgan bo'lsa, u nomni saqlaydi. Agar shunday o'zgaruvchi bo'lsa, tashrif buyuruvchini asosiy sahifaga yo'naltiring (index.php) va ushbu PHP skriptini bajarishni tugating:

agar ($ _ SESSION ['userName']) {

sarlavha ("Joylashuv: index.php");

Chiqish;

}

Kodning qolgan qismi faqat foydalanuvchi to'g'ri foydalanuvchi nomi va parolni kiritmagan taqdirdagina bajariladi. Qaysi login va parolni to'g'ri deb hisoblash kerakligini ko'rsatib o'tamiz:

$ validName = 'Meniki!';

$ validPass = 'maxfiy parol';

Keyin shakldan berilgan qiymatlar to'g'ri qiymatlarga mos keladimi yoki yo'qligini tekshiramiz. Shaklda POST ma'lumotlarni uzatish usulini aniqlaganimiz uchun ularni $ _POST superglobal o'zgaruvchisidan o'qish kerak:

agar ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['userName'] = $ validName;

sarlavha ("Joylashuv: index.php");

Chiqish;

}

Bu erda {} jingalak qavsdagi kod foydalanuvchi nomi va parolning to'g'ri qiymatlari bilan bajariladi. $ _SESSION ['userName'] = $ validName satrida; ma sessiyada hozirda vakolatli foydalanuvchi kirishini o'z ichiga olgan 'userName' nomli o'zgaruvchini yozamiz. Bu uning joriy seansi amal qilgunga qadar unga hamma joyda kirish uchun ochiq bo'lgan belgi bo'ladi.

Shaklga noto'g'ri ma'lumotlar kiritilgan bo'lsa, tegishli xabarni qo'shing:

aks holda aks sado"

Kirish yoki parol noto'g'ri!

;

Login.php nomli faylga saqlanishi kerak bo'lgan barcha kodlar quyidagicha ko'rinadi:

<? php

session_start ();

agar ($ _ SESSION ['userName']) {

sarlavha ("Joylashuv: index.php");

Chiqish;

}

$ validName = 'Meniki!';

$ validPass = 'maxfiy parol';

agar ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['userName'] = $ validName;

sarlavha ("Joylashuv: index.php");

Chiqish;

}

aks holda aks sado"

Kirish yoki parol noto'g'ri!

;

?>

Kirish:

Parol:

2-qadam

2-qadam: Avtorizatsiya blokini yarating - parol himoyasini talab qiladigan har bir sahifaga ulanadigan alohida fayl. Ushbu fayl faqat php-koddan iborat bo'ladi, shuning uchun uning kengaytmasi "php" bo'ladi va biz unga bunday fayllar uchun "auth", ya'ni "auth.php" an'analariga ko'ra nom beramiz. Va bu erda ham <? Php yorlig'i ochilgandan so'ng darhol sessiyani boshlash bo'yicha ko'rsatma bo'lishi kerak:

session_start ();

Sessiyada saqlanadigan barcha o'zgaruvchilarni $ _SESSION superglobal massividan o'qishimiz mumkin. Biz "userName" o'zgaruvchisining qiymatini tekshirishimiz kerak - agar mehmon hali tizimga kirmagan bo'lsa, u holda u massivda bo'lmaydi va biz uni foydalanuvchi nomi va parolini kiritish uchun sahifaga yo'naltiramiz:

agar (! $ _ SESSION ['vakolatli']) {

sarlavha ("Joylashuv: login.php");

Chiqish;

}

Auth.php faylida saqlanishi kerak bo'lgan barcha kodlar quyidagicha ko'rinadi:

<? php

session_start ();

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

sarlavha ("Joylashuv: enter.php");

Chiqish;

}

?>

3-qadam

3-qadam: ushbu fayllarni serverga saqlaganimizdan so'ng, avtorizatsiya blokini ulash uchun ruxsatsiz foydalanuvchilardan himoyalanishi kerak bo'lgan barcha php-sahifalarda qoladi. Ya'ni, har bir php-faylning boshida siz ushbu kodni kiritishingiz kerak bo'ladi:

<? php

talab "auth.php";

?>

Va kirish parolini o'zgartirish uchun siz login.php faylida ushbu o'zgaruvchilar qiymatlarini o'zgartirishingiz kerak bo'ladi:

$ validName = 'Meniki!';

$ validPass = 'maxfiy parol';

$ validName - kirish, $ validPass - parol.

Tavsiya: