⊗ppPmAuSs 415 of 447 menu

Autentificare prin sesiune în PHP

Autentificarea noastră ar trebui să funcționeze astfel: utilizatorul, care dorește să se autentifice pe site, accesează pagina login.php, introduce corect numele de utilizator și parola și apoi navighează pe paginile site-ului deja fiind autentificat.

Pentru ca alte pagini ale site-ului să știe despre faptul că utilizatorul nostru este autentificat, trebuie să păstrăm în sesiune o notă despre acest lucru.

Deocamdată autentificarea noastră nu este chiar funcțională, deoarece încă nu am conectat sesiunea și alte pagini ale site-ului nu pot înțelege dacă este autentificat utilizatorul sau nu.

Vom stoca nota despre autentificare în variabila de sesiune $_SESSION['auth'] - dacă acolo este scris true, atunci utilizatorul este autentificat, iar dacă null - atunci nu este autentificat.

Să introducem modificarea corespunzătoare în codul nostru:

<?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 { // a introdus greșit numele de utilizator sau parola } } ?>

Acum pe orice pagină a site-ului putem verifica, dacă este autentificat utilizatorul sau nu, în felul următor:

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

Se poate restricționa textul unei pagini în întregime pentru utilizatorul neautentificat:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>text doar pentru utilizatorul autentificat</p> </body> </html> <?php else: ?> <p>vă rugăm să vă autentificați</p> <?php endif; ?>

Se poate restricționa doar o parte a paginii:

<!DOCTYPE html> <html> <head> </head> <body> <p>text pentru orice utilizator</p> <?php if (!empty($_SESSION['auth'])) { echo 'text doar pentru utilizatorul autentificat'; } ?> <p>text pentru orice utilizator</p> </body> </html>

Să presupunem că pe site-ul nostru, în afară de pagina login.php, mai sunt și paginile 1.php, 2.php și 3.php. Faceți astfel încât accesul la aceste pagini să-l aibă doar utilizatorul autentificat.

Să presupunem că pe site-ul nostru mai este și pagina index.php. Faceți astfel încât o parte a acestei pagini să fie deschisă pentru toți utilizatorii, iar o parte - doar pentru cei autentificați.

Modificați codul dumneavoastră astfel încât la autentificarea cu succes în sesiune să se înregistreze și numele de utilizator.

Faceți astfel încât la accesarea oricărei pagini a site-ului, utilizatorul autentificat să-și vadă numele de utilizator, iar cel neautentificat - un link către pagina de autentificare.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge