Masquer un lien ou un bouton en PHP

Fermé
menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019 - Modifié le 16 août 2019 à 14:36
menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019 - 16 août 2019 à 17:54
Bonjour à tous

je suis sur un mini projet que je développe en PHP mais je suis bloqué à un niveau.
je voudrais gérer les droits d'accès sur mes pages en php, j'ai donc créé une base de donnée avec les tables et attributs suivants:

USERS(IDuser, nom, prenom, login, mp, confmp, email)

GROUPEUSER(IDgrpUser, nom)

APPARTENIR (#IDuser, #IDgrpUser)------> la table qui regroupe l'id de l'utilisateur et celui du groupe

PAGES(IDpages, NomPages)

DROIT_ACCES(#IDgrpUser, #(IDpages)------->la table qui regroupe l'id de la page et celui du groupe

au passage dans la table GROUPEUSER j'ai inséré deux groupe : administration des ventes et direction générale.
je décide alors de vérifier le groupe auquel appartient le user lorsqu'il se connecte.
- s'il appartient au groupe : administration des ventes alors
dans sa session on désactive les liens: <a href="tuto.php" id="tuto"> VOIR MES TUTOS </a>

- s'il appartient au groupe: direction générale alors
dans sa session on désactive les liens: <a href="tuto.php" id="terminee"> VOIR MES FORMATIONS TERMINEES </a>

pour celà j'ai crée 2 pages:
- index.php ------> formulaires d'inscriptions
- cours.php------> page qui accueil le nom et prenom de l'utilisateur ainsi que les liens de page dont il a le droit

VOICI MON CODE
  • page : INDEX.PHP

<?php 
 session_start();
 $bdd = new PDO('mysql:host=127.0.0.1;dbname=test','root','');

 if (isset($_POST["connexion"])) 
 {
   if (!empty($_POST["loginconnect"]) AND !empty($_POST["passwordconnect"]))
   {
   $req = $bdd->prepare("SELECT * FROM users WHERE login = ? AND mp = ?");
   $req->execute(array($_POST["loginconnect"], $_POST["passwordconnect"]));
   $resultatreq = $req->rowCount();

   if ($resultatreq == 1) 
   {
    
    $userinfo = $req->fetch();
          $_SESSION['nom'] = $userinfo['nom'];
          $_SESSION['prenom'] = $userinfo['prenom'];
       header("location:cours.php?IDuser =" .$_SESSION['nom'] . $_SESSION['prenom']);
   }
   else
   {
    echo "Veuillez créer un compte avant";
   }
   }
   else
   {
    echo "veuillez renseigner tous les champs svp!";
   }
 }
 ?>
<!DOCTYPE html>
<html>
<head>
 <title>TEST SUR LES SESSIONS</title>
 <meta charset="utf-8">
</head>
<body>
 <form action="#" method="POST">
    <input type="login" class="form-control" placeholder="Login" name="loginconnect">
    <input type="password" class="form-control" placeholder="Mot de passe" name="passwordconnect">
    <input id="btn-val" type="submit" value="CONNEXION" class="btn btn-primary" name="connexion">
    </form>
    
</body>
</html>
  • page : COURS.PHP

<?php 
 session_start();
 $bdd = new PDO('mysql:host=127.0.0.1;dbname=test','root','');

 $reqgrp = $bdd->prepare("SELECT users.nom, users.prenom, groupeuser.nom_grp
 FROM user_groupe
 LEFT JOIN users ON users.IDuser = user_groupe.IDuser
 LEFT JOIN groupeuser ON groupeuser.IDgrpuser = user_groupe.IDgrpuser");
 $reqgrp->execute();
 $resultatreqgrp = $reqgrp->fetchAll();
 //var_dump($resultatreqgrp[0]['nom_grp'], $resultatreqgrp[1]['nom_grp']);
 if ($resultatreqgrp == $resultatreqgrp[0]['nom_grp']) 
 {
   $cacher = $_POST['en'];   
   echo $cacher.desabled;
 }
?>
<!DOCTYPE html>
<html>
<head>
 <title>COURS PHP</title>
 <meta charset="utf-8">
</head>
<body>
 <h1>Hello test de classe</h1>
  
  <?php echo $_SESSION['nom']?>  <?php echo $_SESSION['prenom']; ?> <br>
  <a href="tuto.php" id="tuto"> VOIR MES TUTOS </a> <br>
  <a href="tuto.php" id="encours" name="en"> VOIR MES FORMATIONS EN COURS </a> <br>
  <a href="tuto.php" id="terminee"> VOIR MES FORMATIONS TERMINEES </a> 
</body>
</html>


PROBLEME :
mon problème c'est que je n'arrive pas à masquer les liens en fonction de l'utilisateur

Edité par la modération : Ajout des balises de code
A voir également:

1 réponse

jordane45 Messages postés 38366 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 janvier 2025 4 720
16 août 2019 à 14:39
Bonjour,

La variable issue de ton fetch all... ne peut pas être égale à la première valeur de cette même variable...

0
menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019
16 août 2019 à 14:44
Bonjour,

La variable issue de ton fetch all... ne peut pas être égale à la première valeur de cette même variable...

MERCI POUR VOTRE REPONSE.

la variable $resultatreqgrp reçoit la liste des groupes présents dans la table GroupeUser
le if me permet de verifier si le 1er resultat donnée par cette variable est celle que je désirs vérifier
si c'est elle alors je cache mes boutons que l'utilisateurs ne doit pas voir.

c'est ce à quoi j'ai pensé si vous avez une methode plus simple et plus compréhensible, je suis à l'écoute
0
jordane45 Messages postés 38366 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 janvier 2025 4 720 > menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019
16 août 2019 à 15:18
Donc... ton IF .. doit vérifier si la première valeur correspond à celle cherchée ?
Et quelle est cette valeur à vérifier ?
Car ton if.. devrait, dans ce cas, être de la forme

//si tu veux vérifier "administration des ventes"
if ($resultatreqgrp[0]['nom_grp'] == 'administration des ventes')  

ou
//si tu veux vérifier  "direction générale"
if ($resultatreqgrp[0]['nom_grp'] == 'direction générale')  
0
menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019 > jordane45 Messages postés 38366 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 janvier 2025
16 août 2019 à 15:31
Jirdane45

mon frère merci et vraiment merci,
je viens de tester ceci et ça passe

<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=test','root','');

$reqgrp = $bdd->prepare("SELECT users.nom, users.prenom, groupeuser.nom_grp
FROM user_groupe
LEFT JOIN users ON users.IDuser = user_groupe.IDuser
LEFT JOIN groupeuser ON groupeuser.IDgrpuser = user_groupe.IDgrpuser");
$reqgrp->execute();
$resultatreqgrp = $reqgrp->fetchAll();
//var_dump($resultatreqgrp[0]['nom_grp'], $resultatreqgrp[1]['nom_grp']);
if ($resultatreqgrp[0]['nom_grp'] == 'administration des ventes')
{
echo $_SESSION['nom']?>  <?php echo $_SESSION['prenom'];
?><br>
<a href="tuto.php" id="tuto"> VOIR MES TUTOS </a> <br>

<?php
}
?>

maintenant dit moi, tu as une idée de comment mettre les pages créer dans une base de donnée afin d'y mettre les conditions d'accès?
0
jordane45 Messages postés 38366 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 janvier 2025 4 720 > menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019
16 août 2019 à 16:51
Primo... je ne pense pas que nous soyons nés de la même mère.. ni du même père.
Donc "frère".. merci d'éviter.

Ensuite, pour poster ton code sur le forum, il serait bien que tu appliques les BALISES DE CODE.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Et enfin, ta question étant résolue.. merci de mettre le sujet en RESOLU ( https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/)
Toute nouvelle question devant faire l'objet de l'ouverture d'une nouvelle discussion propre à la problématique.
0
menousie Messages postés 4 Date d'inscription vendredi 16 août 2019 Statut Membre Dernière intervention 16 août 2019
16 août 2019 à 17:54
ok désolé pour le therme "frère"
0