⊗ppPmAuSs 415 of 447 menu

Bejelentkezés session segítségével PHP-n

A bejelentkezésünknek úgy kell működnie: a felhasználó, aki be szeretne jelentkezni a weboldalra, felmegy a login.php oldalra, beírja a helyes felhasználónevet és jelszót, majd a weboldal további oldalain már bejelentkezett felhasználóként navigál.

Ahhoz, hogy a weboldal más oldalai is tudják, hogy a felhasználónk be van jelentkezve, egy erre vonatkozó jelölést kell tárolnunk a session-ben.

Egyelőre a bejelentkezésünk nem teljesen működőképes, mivel a session-t még nem kapcsoltuk be, és a weboldal más oldalai nem tudják megállapítani, hogy a felhasználó be van-e jelentkezve vagy sem.

A bejelentkezés jelölését a $_SESSION['auth'] session változóban fogjuk tárolni - ha ott a true érték van, akkor a felhasználó be van jelentkezve, ha null - akkor nincs bejelentkezve.

Végezzük el a megfelelő módosítást a kódunkban:

<?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 { // helytelen felhasználónév vagy jelszó } } ?>

Most a weboldal bármely oldalán ellenőrizhetjük, hogy a felhasználó be van-e jelentkezve, a következő módon:

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

Egy adott oldal teljes szövegét le lehet zárni a nem bejelentkezett felhasználók elől:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>szöveg csak bejelentkezett felhasználók számára</p> </body> </html> <?php else: ?> <p>kérjük, jelentkezzen be</p> <?php endif; ?>

Csak az oldal egy részét is le lehet zárni:

<!DOCTYPE html> <html> <head> </head> <body> <p>szöveg bármely felhasználó számára</p> <?php if (!empty($_SESSION['auth'])) { echo 'szöveg csak bejelentkezett felhasználók számára'; } ?> <p>szöveg bármely felhasználó számára</p> </body> </html>

Tegyük fel, hogy a weboldalunkon a login.php oldalon kívül van még 1.php, 2.php és 3.php oldal is. Állítsa be, hogy ezekhez az oldalakhoz csak bejelentkezett felhasználók férhetnek hozzá.

Tegyük fel, hogy a weboldalunkon van még egy index.php oldal is. Állítsa be, hogy az oldal egy része minden felhasználó számára elérhető legyen, egy része pedig csak bejelentkezett felhasználók számára.

Módosítsa a kódját úgy, hogy a sikeres bejelentkezéskor a session-be a felhasználó felhasználóneve is kerüljön mentésre.

Állítsa be, hogy a weboldal bármely oldalára érkezve a bejelentkezett felhasználó a saját felhasználónevét lássa, a nem bejelentkezett pedig a bejelentkezési oldalra mutató linket.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás