⊗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 { // логин же сырсөз туура эмес киргизилди } } ?>

Эми сайттын каалаган баракчасында биз колдонуучунун авторизацияланган же анда эмес экенин, төмөнкүдөй жол менен текшере алабыз:

<?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 баракчасы бар болсун. Бул баракчанын бир бөлүгү бардык колдонуучулар үчүн ачык, ал эми калган бөлүгү гана авторизациялангандар үчүн болсун.

Өзүңүздүн кодуңузду өзгөртүп, ийгиликтүү авторизацияда сессияга колдонуучунун логини да жазылсын.

Сайттын каалаган баракчасына киргенде, авторизацияланган колдонуучу өзүнүн логинин көрсө, ал эми авторизацияланбаган колдонуучу авторизация баракчасына шилтемени көрсүн.

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