⊗ppPmAuSs 415 of 447 menu

Autentifikācija caur sesiju PHP

Mūsu autentifikācijai jāstrādā šādi: lietotājs, kurš vēlas autentificēties vietnē, iet uz lapu login.php, ievada pareizo lietotājvārdu un paroli un pēc tam pārvietojas pa vietnes lapām jau kā autentificēts.

Lai citas vietnes lapas zinātu, ka mūsu lietotājs ir autentificējies, mums jāuzglabā sesijā atzīme par to.

Pagaidām mūsu autentifikācija nav pilnībā darba gatava, jo sesiju mēs vēl neesam pievienojuši un citas vietnes lapas nevar saprast, vai lietotājs ir autentificējies vai nē.

Mēs glabāsim atzīmi par autentifikāciju sesijas mainīgajā $_SESSION['auth'] - ja tur ierakstīts true, tad lietotājs ir autentificējies, bet ja null - tad nav autentificējies.

Ieviesīsim atbilstošas labojumus mūsu kodā:

<?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 { // nepareizi ievadīts lietotājvārds vai parole } } ?>

Tagad jebkurā vietnes lapā mēs varam pārbaudīt, vai lietotājs ir autentificējies vai nē, šādā veidā:

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

Var aizvērt kādas lapas tekstu vispār neautentificētam lietotājam:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>teksts tikai autentificētam lietotājam</p> </body> </html> <?php else: ?> <p>lūdzu, autentificējieties</p> <?php endif; ?>

Var aizvērt tikai daļu no lapas:

<!DOCTYPE html> <html> <head> </head> <body> <p>teksts jebkuram lietotājam</p> <?php if (!empty($_SESSION['auth'])) { echo 'teksts tikai autentificētam lietotājam'; } ?> <p>teksts jebkuram lietotājam</p> </body> </html>

Pieņemsim, ka mūsu vietnē, bez lapas login.php, ir arī lapas 1.php, 2.php un 3.php. Izveidojiet tā, lai pie šīm lapām varētu piekļūt tikai autentificēts lietotājs.

Pieņemsim, ka mūsu vietnē ir vēl lapa index.php. Izveidojiet tā, lai daļa šīs lapas būtu pieejama visiem lietotājiem, bet daļa - tikai autentificētiem.

Modificējiet savu kodu tā, lai veiksmīgas autentifikācijas gadījumā sesijā tiktu ierakstīts arī lietotāja lietotājvārds.

Izveidojiet tā, lai ienākot jebkurā vietnes lapā, autentificēts lietotājs redzētu savu lietotājvārdu, bet neautentificēts - saiti uz autentifikācijas lapu.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt