⊗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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა