⊗ppPmAuSs 415 of 447 menu

PHPda sessiya orqali avtorizatsiya

Bizning avtorizatsiyamiz shunday ishlashi kerak: saytda avtorizatsiyadan o'tmoqchi bo'lgan foydalanuvchi login.php sahifasiga kiradi, to'g'ri login va parolni kiritadi va keyin sayt sahifalari bo'ylab avtorizatsiyadan o'tgan holda sayr qiladi.

Saytning boshqa sahifalari foydalanuvchimiz avtorizatsiyadan o'tganligini bilishi uchun, biz buni sessiyada saqlashimiz kerak.

Hozircha bizning avtorizatsiyamiz butunlay ishlamaydi, chunki sessiyani hali ulamadik va saytning boshqa sahifalari foydalanuvchi avtorizatsiyadan o'tganmi yoki yo'qmi aniqlay olmaydi.

Avtorizatsiya belgisini $_SESSION['auth'] sessiya o'zgaruvchisida saqlaymiz - agar u true bo'lsa, foydalanuvchi avtorizatsiyadan o'tgan, null bo'lsa, o'tmagan hisoblanadi.

Keling, kodimizga mos o'zgartirish kiritaylik:

<?php session_start(); if (!empty($_POST['password']) and !empty($_POST['login'])) { $login = $_POST['login']; $password = $_POST['password']; $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $_SESSION['auth'] = true; } else { // login yoki parol noto'g'ri kiritilgan } } ?>

Endi saytning istalgan sahifasida foydalanuvchi avtorizatsiyadan o'tganmi yoki yo'qmi shu tarzda tekshirishimiz mumkin:

<?php if (!empty($_SESSION['auth'])) { } ?>

Ma'lum bir sahifaning matnini avtorizatsiyadan o'tmagan foydalanuvchilar uchun butunlay yopish mumkin:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>faqat avtorizatsiyadan o'tgan foydalanuvchi uchun matn</p> </body> </html> <?php else: ?> <p>iltimos, avtorizatsiyadan o'ting</p> <?php endif; ?>

Faqat sahifaning bir qismini yopish mumkin:

<!DOCTYPE html> <html> <head> </head> <body> <p>har qanday foydalanuvchi uchun matn</p> <?php if (!empty($_SESSION['auth'])) { echo 'faqat avtorizatsiyadan o'tgan foydalanuvchi uchun matn'; } ?> <p>har qanday foydalanuvchi uchun matn</p> </body> </html>

Faraz qilaylik, bizning saytimizda login.php sahifasidan tashqari, 1.php, 2.php va 3.php sahifalari ham mavjud. Ushbu sahifalarga faqat avtorizatsiyadan o'tgan foydalanuvchi kirishi mumkin bo'lsin.

Faraz qilaylik, bizning saytimizda index.php sahifasi ham mavjud. Ushbu sahifaning bir qismi barcha foydalanuvchilar uchun ochiq, qolgan qismi esa faqat avtorizatsiyadan o'tganlar uchun bo'lsin.

Kodingizni muvaffaqiyatli avtorizatsiyadan so'ng sessiyaga foydalanuvchi logini ham yoziladigan qilib o'zgartiring.

Saytning istalgan sahifasiga kirganda, avtorizatsiyadan o'tgan foydalanuvchi o'z loginini, o'tmagan foydalanuvchi esa avtorizatsiya sahifasiga havolani ko'rsin.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish