Fonction pour savoir si c'est l'admin
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'ai créer une fonction pour savoir si c'est l'admin qui est connecté, et si oui, afficher le contenu de la page :
Mais, le soucis, c'est que si c'est l'admin, je n'arrive pas a afficher le contenu, exemple :
Question: Comment faire pour afficher le contenu ?
Merci d'avance
Nils0
function is_admin(){ if(isset($_GET['id']) AND $_GET['id'] > 0) { if(!isset($bdd)){ $bdd = connexion_bdd(); } $getid = intval($_GET['id']); $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?'); $requser->execute(array($getid)); $userinfo = $requser->fetch(); if(!isset($_SESSION['id']) AND $userinfo['id'] != $_SESSION['id'] AND $_SESSION['id'] != "1" AND $userinfo['niveau'] != "administrateur") { if(file_exists("connexion.php")){ $redirection = header('Location: connexion.php'); } else { $redirection = header('Location: ../connexion.php'); } } } else { if(file_exists("connexion.php")){ $redirection = header('Location: connexion.php'); } else { $redirection = header('Location: ../connexion.php'); } } if(isset($redirection)){ return $redirection; } }
Mais, le soucis, c'est que si c'est l'admin, je n'arrive pas a afficher le contenu, exemple :
<?php if(is_admin()){ ?> <ul class="article"> <?php while($n = $art->fetch()) { ?> <li> <?php if(file_exists("miniatures/".$n['id'].".jpg")){ $files = "miniatures/".$n['id'].".jpg"; } elseif(file_exists("miniatures/".$n['id'].".png")){ $files = "miniatures/".$n['id'].".png"; } elseif(file_exists("miniatures/".$n['id'].".jpeg")){ $files = "miniatures/".$n['id'].".jpeg"; } else { $files = "miniatures/".$n['id'].".gif"; } if(file_exists($files)){ ?> <a href="article.php?<?php if(isset($_SESSION['id'])){?>id=<?= $_SESSION['id']; ?>&<?php } ?>article=<?= $n['id']; ?>"><img src="<?php echo $files; ?>" class="img-article" /></a> <br /> <br /> <?php } ?> <a href="article.php?<?php if(isset($_SESSION['id'])){?>id=<?= $_SESSION['id']; ?>&<?php } ?>article=<?= $n['id']; ?>"><b class="art-titre"><?= $n['titre']; ?></b></a> <br /> <?= "<b>Ecrit le : </b>".$n['date_time_publication']; ?> <br /> <?= $n['description']; ?> <br /> <hr /> <br /> <br /> </li> <?php } ?> </ul> <?php } ?>
Question: Comment faire pour afficher le contenu ?
Merci d'avance
Nils0
A voir également:
- Fonction pour savoir si c'est l'admin
- Fonction si et - Guide
- Livebox admin - Guide
- Mot de passe admin - Guide
- Mot de passe admin freebox - Forum SQL Server
- Fonction miroir - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je ne comprends pas pourquoi tu fais
return $redirection;dans la fonction
is_admin. Tu ne devrais pas plutôt faire
return trueou
return false?
Salut,
Le problème vient du retour de la fonction is_admin.
Si tu veux pouvoir utiliser cette fonction directement dans la condition d'un if, celle-ci doit retourner un booléen true ou false.
Or actuellement ta fonction retourne la variable $redirection qui elle contient le retour de la fonction header() qui ne renvoie pas de valeur de retour.
Le retour de ta fonction est donc actuellement équivalent à
Il faut donc modifier ta fonction is_admin() pour lui faire retourner uniquement true ou false. Les redirections ne devraient pas être gérées dans cette fonction.
Bonne journée,
Le problème vient du retour de la fonction is_admin.
Si tu veux pouvoir utiliser cette fonction directement dans la condition d'un if, celle-ci doit retourner un booléen true ou false.
Or actuellement ta fonction retourne la variable $redirection qui elle contient le retour de la fonction header() qui ne renvoie pas de valeur de retour.
Le retour de ta fonction est donc actuellement équivalent à
return null;qui est donc toujours interprété comme le booléen false dans ta condition if.
Il faut donc modifier ta fonction is_admin() pour lui faire retourner uniquement true ou false. Les redirections ne devraient pas être gérées dans cette fonction.
Bonne journée,
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je suis étonné de l'utilisation du $GET pour retrouver l'identification de l'utilisateur, alors que tu a aussi l'identification dans la session, si je vois bien.
Je me demande si ton test fonctionne bien:
Je me demande si ton test fonctionne bien:
if(!isset($_SESSION['id']) AND $userinfo['id'] != $_SESSION['id'] AND $_SESSION['id'] != "1"...Qu'en attends-tu?
Bonjour,
MERCI BEAUCOUP de m'avoir répondu...
J'ai modifié ma fonction, et ça MARCHE :
Je tiens juste a préciser que je suis ados et que je commence tous juste a me débrouiller en php ...
Merci
Nils0
MERCI BEAUCOUP de m'avoir répondu...
J'ai modifié ma fonction, et ça MARCHE :
function is_admin(){ // savoir si c'est l'admin if(isset($_GET['id']) AND $_GET['id'] > 0) { if(!isset($bdd)){ $bdd = connexion_bdd(); } $getid = intval($_GET['id']); $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?'); $requser->execute(array($getid)); $userinfo = $requser->fetch(); if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id'] AND $_SESSION['id'] == "1" AND $userinfo['niveau'] == "administrateur") { return true; } else { if(file_exists("connexion.php")){ header('Location: connexion.php'); } else { header('Location: ../connexion.php'); } } } else { if(file_exists("connexion.php")){ header('Location: connexion.php'); } else { header('Location: ../connexion.php'); } } }
Je tiens juste a préciser que je suis ados et que je commence tous juste a me débrouiller en php ...
Merci
Nils0
Voilà :
function is_admin(){ // savoir si c'est l'admin if(isset($_GET['id']) AND $_GET['id'] > 0) { if(!isset($bdd)){ $bdd = connexion_bdd(); } $getid = intval($_GET['id']); $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?'); $requser->execute(array($getid)); $userinfo = $requser->fetch(); if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id'] AND $_SESSION['id'] == "1" AND $userinfo['niveau'] == "administrateur") { return true; } else { if(file_exists("connexion.php")){ header('Location: connexion.php'); } else { header('Location: ../connexion.php'); } } } else { if(file_exists("connexion.php")){ header('Location: connexion.php'); } else { header('Location: ../connexion.php'); } } return false; }