⊗ppPmAuSs 415 of 447 menu

Autorizacija per sesiją PHP

Mūsų autorizacija turėtų veikti taip: vartotojas, kuris nori prisijungti prie svetainės, ateina į puslapį login.php, įveda teisingus prisijungimo vardą ir slaptažodį ir vėliau naršo po svetainės puslapius jau būdamas autorizuotas.

Kad kiti svetainės puslapiai žinotų apie tai, kad mūsų vartotojas yra autorizuotas, mes turime saugoti sesijoje žymę apie tai.

Kol kas mūsų autorizacija nėra visiškai veikianti, nes sesiją mes dar neprijungėme ir kiti svetainės puslapiai negali suprasti, ar vartotojas yra autorizuotas, ar ne.

Laikysime žymę apie autorizaciją sesijos kintamajame $_SESSION['auth'] - jei ten įrašyta true, tai vartotojas yra autorizuotas, o jei null - tai neautorizuotas.

Įveskime atitinkamą pataisą į mūsų 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 { // neteisingai įvestas prisijungimo vardas arba slaptažodis } } ?>

Dabar bet kuriame svetainės puslapyje galime patikrinti, ar vartotojas yra autorizuotas, ar ne, štai tokiu būdu:

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

Galima uždrauti visą kokio nors puslapio tekstą neautorizuotiems vartotojams:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>tekstas tik autorizuotam vartotojui</p> </body> </html> <?php else: ?> <p>prašome, prisijunkite</p> <?php endif; ?>

Galima uždrauti tik dalį puslapio:

<!DOCTYPE html> <html> <head> </head> <body> <p>tekstas bet kuriam vartotojui</p> <?php if (!empty($_SESSION['auth'])) { echo 'tekstas tik autorizuotam vartotojui'; } ?> <p>tekstas bet kuriam vartotojui</p> </body> </html>

Tarkime, mūsų svetainėje, be puslapio login.php, yra dar ir puslapiai 1.php, 2.php ir 3.php. Padarykite taip, kad prie šių puslapių galėtų prieiti tik autorizuotas vartotojas.

Tarkime, mūsų svetainėje yra dar ir puslapis index.php. Padarykite taip, kad dalis šio puslapio būtų atvira visiems vartotojams, o dalis - tik autorizuotiems.

Modifikuokite savo kodą taip, kad sėkmingos autorizacijos metu į sesiją būtų įrašomas ir vartotojo prisijungimo vardas.

Padarykite taip, kad ateinant į bet kurį svetainės puslapį, autorizuotas vartotojas matytų savo prisijungimo vardą, o neautorizuotas - nuorodą į autorizacijos puslapį.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti