PHP-ban hogy kell "védett" oldalt létrehozni?
Ellenőrizni kellene, hogy a bejelentkezett felhasználónak van-e jogosultsága az oldalt megtekinteni.
Ilyesmiket találtam:
<?php
session_start();
if (isset($_SESSION["felhasznalonev"]) && $_SESSION["felhasznalotipus"] === 'admin')
{
}
else {
header("location: /login.php");
exit();
}
?>
html kód...
Mi a probléma? Hol akadtál el? Nem a legjobb példa, de a célnak megfelel ez is. Érted is?
Ha nem, akkor kezd az alapoktól....
Valójában annyi a feladat, hogyha belépett a felhasználó létrehozod a session-t hozzá. Lekérdezed (pl adatbázisból) a felhasználó rangját (jelen esetben admin mondjuk) és ezt is letárolod egy session-ben. Utána egy egyszerű feltétellel ellenőrzöd, hogy a két session létezik-e, illetve, hogy a rang, az az általad elvárt-e, és ha igen, akkor megjeleníted a tartalmat. Ha nem akkor (a példa szerint) átirányítod a bejelentkező felületre. (Ami amúgy elég béna megoldás, ugyanis ha be van lépve csak más ranggal és a bejelentkező oldal átirányít az előző oldalra ha be vagy lépve, akkor egy átirányítási hurokba kerülsz... Na mindegy.)
Szóval kezd az alapokkal és ha eljutsz a session-ig akkor megérted majd mit ír a példa.
(A gyakorlatban egyébként keretrendszert használunk, amiben ez többnyire le van kezelve és saját session manager-e van és a belépett usert cache szerveren tároljuk.)
Köszi.
Nagyjából értem a kérdésben szereplő példát. Teszteltem is, és valóban butaság a loginra irányítani.
Csak kíváncsi voltam mennyire számít gagyi megoldásnak. Keretrendszert nem akarok még használni.
Hát.. akkor inkább ezt nézd meg. Nyilván ez sem a legjobb (meg semmibe veszi pár helyen a PSR-t) de egy fokkal jobb és átfogóbb példa:
(Na látom megjöttek a kritikusok. :D Az értékelésen kívül érvelni is tudtok? Mert így elég hiteltelen...)
Javítom magam (#4):
Végignéztem alaposabban a példát amit linkeltem és ez is tele van hülyeségekkel... (egyszerű szövegként tárolja a jelszót... agyrém.) Bocs. Inkább törölném, de sajnos nem lehet.
Szóval kezeld fenntartásokkal. Jó példát nehéz találni (kiábrándító mennyi hülyeség van fent "oktatási" célból) és csak remélni merem, hogy senki nem ezekről vesz példát.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!