⊗ppPmAuSs 415 of 447 menu

Autorisation via session en PHP

Notre autorisation doit fonctionner ainsi : l'utilisateur, qui souhaite s'autoriser sur le site, se rend sur la page login.php, saisit les bons identifiant et mot de passe et ensuite navigue sur les pages du site en étant déjà autorisé.

Pour que les autres pages du site sachent que notre utilisateur est autorisé, nous devons stocker dans la session une marque à ce sujet.

Pour l'instant, notre autorisation n'est pas tout à fait fonctionnelle, car nous n'avons pas encore intégré la session et les autres pages du site ne peuvent pas savoir si l'utilisateur est autorisé ou non.

Nous stockerons la marque d'autorisation dans la variable de session $_SESSION['auth'] - si true y est écrit, alors l'utilisateur est autorisé, et si c'est null - alors il ne l'est pas.

Apportons la modification correspondante à notre code :

<?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 { // identifiant ou mot de passe incorrect } } ?>

Désormais, sur n'importe quelle page du site, nous pouvons vérifier si l'utilisateur est autorisé ou non, de cette manière :

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

On peut restreindre l'accès au texte d'une page entièrement pour un utilisateur non autorisé :

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>texte uniquement pour l'utilisateur autorisé</p> </body> </html> <?php else: ?> <p>veuillez vous autoriser</p> <?php endif; ?>

On peut ne restreindre qu'une partie de la page :

<!DOCTYPE html> <html> <head> </head> <body> <p>texte pour tout utilisateur</p> <?php if (!empty($_SESSION['auth'])) { echo 'texte uniquement pour l'utilisateur autorisé'; } ?> <p>texte pour tout utilisateur</p> </body> </html>

Supposons que sur notre site, en plus de la page login.php, il y ait aussi les pages 1.php, 2.php et 3.php. Faites en sorte que l'accès à ces pages soit réservé uniquement à l'utilisateur autorisé.

Supposons que sur notre site il y ait aussi une page index.php. Faites en sorte qu'une partie de cette page soit ouverte à tous les utilisateurs, et une partie - uniquement aux utilisateurs autorisés.

Modifiez votre code afin que lors d'une autorisation réussie, l'identifiant de l'utilisateur soit également enregistré dans la session.

Faites en sorte qu'en accédant à n'importe quelle page du site, l'utilisateur autorisé voie son identifiant, et que le non autorisé voie un lien vers la page d'autorisation.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser