⊗ppPmAuSs 415 of 447 menu

Autorisatie via sessie in PHP

Onze autorisatie moet als volgt werken: een gebruiker, die zich op de website wil autoriseren, gaat naar de pagina login.php, voert de juiste login en wachtwoord in en bezoekt daarna de pagina's van de website al geautoriseerd.

Zodat andere pagina's van de website weten dat onze gebruiker geautoriseerd is, moeten we een markering hiervan in de sessie opslaan.

Momenteel is onze autorisatie nog niet helemaal werkend, omdat we de sessie nog niet hebben aangesloten en andere pagina's van de website niet kunnen begrijpen of de gebruiker geautoriseerd is of niet.

We slaan de autorisatiemarkering op in de sessievariabele $_SESSION['auth'] - als daar true staat, dan is de gebruiker geautoriseerd, en als het null is - dan niet geautoriseerd.

Laten we de bijbehorende aanpassing in onze code aanbrengen:

<?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 { // onjuiste login of wachtwoord ingevoerd } } ?>

Nu kunnen we op elke pagina van de website controleren, of de gebruiker geautoriseerd is of niet, op deze manier:

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

Je kunt de tekst van een willekeurige pagina volledig afsluiten voor een niet-geautoriseerde gebruiker:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>tekst alleen voor geautoriseerde gebruiker</p> </body> </html> <?php else: ?> <p>gelieve te autoriseren</p> <?php endif; ?>

Je kunt alleen een deel van de pagina afsluiten:

<!DOCTYPE html> <html> <head> </head> <body> <p>tekst voor elke gebruiker</p> <?php if (!empty($_SESSION['auth'])) { echo 'tekst alleen voor geautoriseerde gebruiker'; } ?> <p>tekst voor elke gebruiker</p> </body> </html>

Stel dat op onze website, behalve de pagina login.php, er ook pagina's 1.php, 2.php en 3.php zijn. Zorg ervoor dat alleen geautoriseerde gebruikers toegang hebben tot deze pagina's.

Stel dat op onze website ook een pagina index.php is. Zorg ervoor dat een deel van deze pagina openstaat voor alle gebruikers, en een deel - alleen voor geautoriseerden.

Pas je code zo aan dat bij succesvolle autorisatie ook de login van de gebruiker in de sessie wordt opgeslagen.

Zorg ervoor dat bij het bezoeken van elke pagina van de website, de geautoriseerde gebruiker zijn login ziet, en de niet-geautoriseerde - een link naar de autorisatiepagina.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren