⊗ppPmAuSs 415 of 447 menu

Autentimine sessiooni kaudu PHP-s

Meie autentimine peaks toimima järgmiselt: kasutaja, kes soovib saidile sisse logida, läheb lehele login.php, sisestab õiged kasutajanime ja parooli ning seejärel liigub saidil lehtedel juba sisse logitud olekus.

Selleks, et teised saidi lehed teaksid, et meie kasutaja on autenditud, peame sessiooni salvestama selle kohta märge.

Praegu ei ole meie autentimine veel päris töökorras, kuna me pole sessiooni veel ühendanud ja teised saidi lehed ei suuda aru saada, kas kasutaja on autenditud või mitte.

Hoiame autentimise märget sessiooni muutujas $_SESSION['auth'] - kui sinna on kirjutatud true, siis on kasutaja autenditud, aga kui null - siis pole autenditud.

Teeme vastava paranduse oma koodi:

<?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 { // sisestas vale kasutajanime või parooli } } ?>

Nüüd saame igal saidi lehel kontrollida, kas kasutaja on autenditud või mitte, järgmisel viisil:

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

Saab mingi lehe teksti täielikult sulgeda autentimata kasutaja eest:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>tekst ainult autenditud kasutajale</p> </body> </html> <?php else: ?> <p>palun logige sisse</p> <?php endif; ?>

Saab sulgeda ainult osa lehest:

<!DOCTYPE html> <html> <head> </head> <body> <p>tekst igale kasutajale</p> <?php if (!empty($_SESSION['auth'])) { echo 'tekst ainult autenditud kasutajale'; } ?> <p>tekst igale kasutajale</p> </body> </html>

Oletagem, et meie saidil, lehe login.php kõrval, on veel lehed 1.php, 2.php ja 3.php. Tehke nii, et nendele lehtedele pääseks ligi ainult autenditud kasutaja.

Oletagem, et meie saidil on veel leht index.php. Tehke nii, et osa sellest lehest oleks avatud kõigile kasutajatele, aga osa - ainult autenditutele.

Muutke oma koodi nii, et edukal autentimisel salvestataks sessiooni ka kasutaja kasutajanimi.

Tehke nii, et mis tahes saidilehele sisenemisel näeks autenditud kasutaja oma kasutajanime, aga autentimata kasutaja - linki autentimislehele.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu