⊗ppPmAuSs 415 of 447 menu

PHP да сессия орқали авторизация

Бизнинг авторизациясимиз шундай ишлаши керак: сайтимизга авторизациядан ўтишни истаган фойдаланувчи login.php саҳифасига кириб, тўғри логин ва паролни киритади ва сўнгра сайтинг бошқа саҳифаларига авторизациядан ўтган ҳолда айланади.

Сайтнинг бошқа саҳифалари бизнинг фойдаланувчи авторизациядан ўтганини билиши учун, биз бу ҳақда сессияда белги қолдиришимиз керак.

Ҳозирча бизнинг авторизациясимиз мукаммал ишламайди, чунки биз сессияни ҳали уланмаганмиз ва сайтинг бошқа саҳифалари фойдаланувчи авторизациядан ўтганми ёки йўқлигини аниклаб олмайди.

Авторизация ҳақидаги белгини сессиянинг $_SESSION['auth'] ўзгарувчисида сақлаймиз - агар унда true ёзилган бўлса, фойдаланувчи авторизациядан ўтган, агар null бўлса - авторизациядан ўтмаган.

Келгинг, кодга мос ўзгартиришларни киритайлик:

<?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 { // логин ёки паролни нотўғри киритди } } ?>

Энди биз сайтнинг istalgan саҳифасида фойдаланувчи авторизациядан ўтганми ёки йўқлигини шу тарзда текширишимиз мумкин:

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

Бирор саҳифанинг матнини авторизациядан ўтмаган фойдаланувчилар учун бутунлай ёпиб қўйиш мумкин:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>фақат авторизациядан ўтган фойдаланувчи учун матн</p> </body> </html> <?php else: ?> <p>илтимос, авторизациядан ўтинг</p> <?php endif; ?>

Саҳифанинг фақат бир қисминигина ёпиб қўйиш мумкин:

<!DOCTYPE html> <html> <head> </head> <body> <p>ҳар қандай фойдаланувчи учун матн</p> <?php if (!empty($_SESSION['auth'])) { echo 'фақат авторизациядан ўтган фойдаланувчи учун матн'; } ?> <p>ҳар қандай фойдаланувчи учун матн</p> </body> </html>

Фарз қилайлик, бизнинг сайтимизда login.php саҳифасидан ташқари, яна 1.php, 2.php ва 3.php саҳифалари мавжуд. Ушбу саҳифаларга фақат авторизациядан ўтган фойдаланувгина кириши мумкин бўлсин.

Фарз қилайлик, бизнинг сайтимизда яна index.php саҳифаси мавжуд. Ушбу саҳифанинг бир қисми ҳамма фойдаланувчилар учун очиқ, иккинчи қисми эса фақат авторизациядан ўтганлар учун очиқ бўлсин.

Кодингизни шундай модификация қилингки, муваффақиятли авторизациядан сўнг сессияга фойдаланувчининг логини ҳам ёзилсин.

Сайтнинг istalgan саҳифасига кирганда, авторизациядан ўтган фойдаланувчи ўз логинини кўрсин, авторизациядан ўтмаган фойдаланувчи эса авторизация саҳифасига havolaни кўрсин.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш