⊗ppPmAuSs 415 of 447 menu

Autentisering gjennom sesjon i PHP

Autentiseringen vår skal fungere slik: en bruker som ønsker å logge inn på nettstedet, går til siden login.php, skriver inn riktig brukernavn og passord og deretter navigerer de på sidene på nettstedet som en autentisert bruker.

For at andre sider på nettstedet skal vite at brukeren vår er autentisert, må vi lagre en merknad om dette i økten.

Foreløpig er autentiseringen vår ikke helt fungerende, siden vi ikke har koblet til økten ennå, og andre sider på nettstedet kan ikke forstå om brukeren er autentisert eller ikke.

Vi vil lagre merknaden om autentisering i øktvariabelen $_SESSION['auth'] - hvis den har verdien true, er brukeren autentisert, og hvis den er null - er brukeren ikke autentisert.

La oss gjøre den tilsvarende endringen i koden vår:

<?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 { // feil brukernavn eller passord } } ?>

Nå på enhver side på nettstedet kan vi sjekke om brukeren er autentisert eller ikke, slik:

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

Man kan stenge en hel side for ikke-autentiserte brukere:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>tekst kun for autentisert bruker</p> </body> </html> <?php else: ?> <p>vennligst logg inn</p> <?php endif; ?>

Man kan kun stenge en del av siden:

<!DOCTYPE html> <html> <head> </head> <body> <p>tekst for alle brukere</p> <?php if (!empty($_SESSION['auth'])) { echo 'tekst kun for autentisert bruker'; } ?> <p>tekst for alle brukere</p> </body> </html>

Anta at på nettstedet vårt, i tillegg til siden login.php, også finnes sidene 1.php, 2.php og 3.php. Gjør slik at kun autentiserte brukere har tilgang til disse sidene.

Anta at på nettstedet vårt også finnes siden index.php. Gjør slik at en del av denne siden er åpen for alle brukere, og en del - kun for autentiserte.

Modifiser koden din slik at ved vellykket autentisering blir brukernavnet til brukeren også lagret i økten.

Gjør slik at når man besøker en hvilken som helst side på nettstedet, vil den autentiserte brukeren se sitt eget brukernavn, mens den ikke-autentiserte vil se en lenke til innloggingssiden.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis