Goedendag,
Ik ben nu al een enkele maanden bezig met het schrijven van een PHP website. Nu de front-end grotendeels klaar is ben ik begonnen met de back-end (admin paneel).
Ik heb ervoor gekozen om groepen aan te maken omdat deze paneel (deels) beschikbaar wordt gesteld voor moderators. Hiervoor heb ik een tabel aangemaakt met usergroups en wil groepen met de ID 2 t/m 4 toegang bieden tot de adminpaneel.
Als een gebruiker inlogt maakt PHP een aantal sessie variabelen aan zoals logged (boolean), userid, username, logins ed. Nu wil ik dat PHP onderscheid maakt tussen users met administratorrechten en zonder.
Welke van de onderstaande zal het beste (en veiligste) zijn?
en:
Deze code wordt in de init.php bestand geplaatst die wordt geladen door iedere pagina. Voor pagina's waar gebruikers voor moeten inloggen defineer ik eers $secure met een willekeurige waarde (1 in de meeste gevallen), de init.php controleerd vervolgens of de gebruiker is ingelogd en laad login.php indien dit niet het geval is.
Voor de adminpaneel wil ik hetzelfde doen, maar dan wel met een andere variabel (bijv. $admin).
Groet,
Oguzhan
Ik ben nu al een enkele maanden bezig met het schrijven van een PHP website. Nu de front-end grotendeels klaar is ben ik begonnen met de back-end (admin paneel).
Ik heb ervoor gekozen om groepen aan te maken omdat deze paneel (deels) beschikbaar wordt gesteld voor moderators. Hiervoor heb ik een tabel aangemaakt met usergroups en wil groepen met de ID 2 t/m 4 toegang bieden tot de adminpaneel.
Als een gebruiker inlogt maakt PHP een aantal sessie variabelen aan zoals logged (boolean), userid, username, logins ed. Nu wil ik dat PHP onderscheid maakt tussen users met administratorrechten en zonder.
Welke van de onderstaande zal het beste (en veiligste) zijn?
PHP:
if (isset($_SESSION['logged'])){
$user=$_SESSION['user'];
$sql="SELECT `id`,`group` FROM users WHERE id = '$user' AND `group` BETWEEM 2 AND 4";
$cmd=mysql_query($sql);
if(!$cmd){
header("Location: /index.php");
}else{
header("Location: index.php");
}
}
en:
PHP:
if (isset($admin)){
if (!isset($_SESSION['admin'])) {
header("Location: /index.php");
exit();
}
}
Deze code wordt in de init.php bestand geplaatst die wordt geladen door iedere pagina. Voor pagina's waar gebruikers voor moeten inloggen defineer ik eers $secure met een willekeurige waarde (1 in de meeste gevallen), de init.php controleerd vervolgens of de gebruiker is ingelogd en laad login.php indien dit niet het geval is.
Voor de adminpaneel wil ik hetzelfde doen, maar dan wel met een andere variabel (bijv. $admin).
Groet,
Oguzhan