In een CMS'je geschreven in PHP doe ik om te kijken of iemand ingelogd is het volgende:
Ik maak dus altijd 2 sessies aan als er een inlogcombinatie gevonden wordt:
1. met het user_id (en dat is een auto-nummering id)
2. met de uitkomst van user_beheerder (en dat is een ja/nee veld)
Op een andere pagina wil ik daarna een menu tonen, afhankelijk van welke user is ingelod. Dit doe ik als volgt:
Is dit een goede manier, of zijn er nog verbeterpunten?
Ik vind het wel handig om 2 sessies aan te maken. Dus meteen eentje voor de beheerder erbij.
(Dan hoef ik niet op elke pagina een query te doen of de user uit de sessie wel/niet een beheerder is).
code:
1
2
3
4
5
6
7
8
9
10
11
| $result = mysqli_query($db, " SELECT * FROM tbluser WHERE naam = '$user' AND wachtwoord = '$pass' "); $rowCheck = mysqli_num_rows($result); if ( $rowCheck > 0 ) { while ( $row = mysqli_fetch_array($result) ) { // dit zit in een loop nu, maar er is sowieso altijd maar 1 resultaat, want unieke naam user //start the session and register a variable session_start(); $_SESSION['user_id'] = $row['user_id']; $_SESSION['user_beheerder'] = $row['beheerder']; header("Location: welkom.php"); } } |
Ik maak dus altijd 2 sessies aan als er een inlogcombinatie gevonden wordt:
1. met het user_id (en dat is een auto-nummering id)
2. met de uitkomst van user_beheerder (en dat is een ja/nee veld)
Op een andere pagina wil ik daarna een menu tonen, afhankelijk van welke user is ingelod. Dit doe ik als volgt:
code:
1
2
3
4
5
6
7
8
9
| if (!isset($_SESSION['user_id'])) header( "Location: index.php" ); // er is niemand ingelogd, dus stuur weg if ( $_SESSION['user_beheerder'] == "ja" ) { echo "Er is een beheerder ingelogd, laat het admin-menu zien."; // verdere code hier } else { echo "Er is een normale user ingelogd, laat een normaal menu zien."; // verdere code hier } |
Is dit een goede manier, of zijn er nog verbeterpunten?
Ik vind het wel handig om 2 sessies aan te maken. Dus meteen eentje voor de beheerder erbij.
(Dan hoef ik niet op elke pagina een query te doen of de user uit de sessie wel/niet een beheerder is).