⊗ppPmAuSs 415 of 447 menu

Autentisering via session i PHP

Vår autentisering ska fungera så här: en användare, som vill logga in på webbplatsen, går till sidan login.php, anger rätt användarnamn och lösenord och sedan navigerar på webbplatsens sidor redan inloggad.

För att andra sidor på webbplatsen ska veta att vår användare är inloggad måste vi lagra en markering om detta i sessionen.

För tillfället är vår autentisering inte helt funktionell, eftersom vi ännu inte har anslutit sessionen och andra sidor på webbplatsen inte kan förstå om användaren är inloggad eller inte.

Vi kommer att lagra markeringen om autentisering i sessionsvariabeln $_SESSION['auth'] - om true är skrivet där, så är användaren inloggad, och om null - så är hen inte inloggad.

Låt oss göra motsvarande ändring i vår kod:

<?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 { // fel användarnamn eller lösenord } } ?>

Nu på vilken sida som helst på webbplatsen kan vi kontrollera om användaren är inloggad eller inte, på detta sätt:

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

Man kan stänga av texten på en sida helt för icke-inloggade användare:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>text endast för inloggade användare</p> </body> </html> <?php else: ?> <p>vänligen logga in</p> <?php endif; ?>

Man kan stänga av endast en del av sidan:

<!DOCTYPE html> <html> <head> </head> <body> <p>text för alla användare</p> <?php if (!empty($_SESSION['auth'])) { echo 'text endast för inloggade användare'; } ?> <p>text för alla användare</p> </body> </html>

Antag att på vår webbplats, förutom sidan login.php, finns även sidorna 1.php, 2.php och 3.php. Gör så att endast inloggade användare har tillgång till dessa sidor.

Antag att på vår webbplats finns ytterligare en sida index.php. Gör så att en del av denna sida är öppen för alla användare, och en del - endast för inloggade.

Modifiera din kod så att vid lyckad autentisering så sparas även användarens användarnamn i sessionen.

Gör så att när man besöker vilken sida som helst på webbplatsen, så ser den inloggade användaren sitt användarnamn, och den utloggade - en länk till inloggningssidan.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa