⊗ppPmAuSs 415 of 447 menu

Autorizácia ceze session v PHP

Naša autorizácia by mala fungovať tak: používateľ, ktorý sa chce autorizovať na stránke, príde na stránku login.php, zadá správne prihlasovacie meno a heslo a potom chodí po stránkach webu už ako autorizovaný.

Aby ostatné stránky webu vedeli, že náš používateľ je autorizovaný, musíme v session uložiť poznámku o tom.

Zatiaľ naša autorizácia nie je celkom funkčná, pretože session sme ešte nepripojili a ostatné stránky webu nemôžu zistiť, či je používateľ autorizovaný alebo nie.

Budeme ukladať poznámku o autorizácii v premennej session $_SESSION['auth'] - ak je tam zapísané true, potom je používateľ autorizovaný, a ak null - tak nie je autorizovaný.

Poďme vykonať príslušnú úpravu v našom kóde:

<?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 { // zle zadané prihlasovacie meno alebo heslo } } ?>

Teraz na akejkoľvek stránke webu môžeme skontrolovať, či je používateľ autorizovaný alebo nie, takýmto spôsobom:

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

Môžeme uzavrieť text nejakej stránky celý pre neautorizovaného používateľa:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>text len pre autorizovaného používateľa</p> </body> </html> <?php else: ?> <p>prosím, autorizujte sa</p> <?php endif; ?>

Môžeme uzavrieť len časť stránky:

<!DOCTYPE html> <html> <head> </head> <body> <p>text pre akéhokoľvek používateľa</p> <?php if (!empty($_SESSION['auth'])) { echo 'text len pre autorizovaného používateľa'; } ?> <p>text pre akéhokoľvek používateľa</p> </body> </html>

Nech na našom webe, okrem stránky login.php, sú ešte stránky 1.php, 2.php a 3.php. Zabezpečte, aby k týmto stránkam mal prístup len autorizovaný používateľ.

Nech na našom webe je ešte stránka index.php. Zabezpečte, aby časť tejto stránky bola otvorená pre všetkých používateľov, a časť - len pre autorizovaných.

Upravte váš kód tak, aby pri úspešnej autorizácii sa do session zapísalo aj prihlasovacie meno používateľa.

Zabezpečte, aby pri vstupe na akúkoľvek stránku webu, autorizovaný používateľ videl svoje prihlasovacie meno, a neautorizovaný - odkaz na stránku autorizácie.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť