[RESOLU] Comment masquer certain onglet en fonction de l'utilisateur

Eléphanteau du PHP | 19 Messages

27 févr. 2017, 13:09

bonjour,
je suis débutant dans PHP, çà fait 2 semaines que je suis deçu et 3 semaines sur le html. Donc autant dire que je démarre et que je ne connais pas grand chose.
Je suis en train de créer 1 page html avec des onglets.
J'ai créer ma page de connexion en php. Ce que j'aimerais, c'est qu'en fonction de l'utilisateur, certains onglets apparaissent et d'autres pas.
Est-ce que c'est possible de faire çà en php, ou quel serait le meilleur moyen de faire autrement.
j'ai crée une base de donnée pour les membres.
merci de votre aide

Eléphant du PHP | 385 Messages

27 févr. 2017, 14:20

Bonjour raoul,

Oui il faut que tu utilises le système de session, quand tu fais ton login si celui-ci fonctionne tu stockes en session l'utilisateur et ses droits puis là ou sont tes onglet utilises un if pour voir la correspondance des droits en session et savoir si tu affiches l'onglet.

Code : Tout sélectionner

if( !empty($_SESSION['droit']) && $_SESSION['droit'] === "admin" ){ // j'affiche l'onglet pour les admins }

Eléphant du PHP | 337 Messages

27 févr. 2017, 14:21

Si ton nombre d'onglet total est fixe, le plus simple (pas forcément le plus optimisé) serait de créer un champ dans ta table d'utilisateurs pour chaque onglet. Si le champ est à 1, l'onglet apparaît, s'il est à 0, il n'apparaît pas.

Si le nombre d'onglets est variable c'est plus délicat : il faut créer un champ qui stocke une variable array(), transformée en json pour stockage... Avant de répondre mieux, faut en savoir plus ;)

Eléphanteau du PHP | 19 Messages

27 févr. 2017, 15:09

Bonjour raoul,

Oui il faut que tu utilises le système de session, quand tu fais ton login si celui-ci fonctionne tu stockes en session l'utilisateur et ses droits puis là ou sont tes onglet utilises un if pour voir la correspondance des droits en session et savoir si tu affiches l'onglet.

Code : Tout sélectionner

if( !empty($_SESSION['droit']) && $_SESSION['droit'] === "admin" ){ // j'affiche l'onglet pour les admins }
merci pour cette réponse, je vais faire çà, Je vous tiens au courant

Eléphanteau du PHP | 19 Messages

06 mars 2017, 17:18

Bonjour, me voilà dans ma 3ème semaine de PHP, et je suis toujours en recherche.
Je m'explique : comment mettre en base de donnée mysql des droits utilisateurs. j'ai besoin de mettre accès à certain onglets en fonction de la personne.
donc mon 1er problème est :
-comment je le mets en base mysql des liens liés à mes onglets
-comment je fais le lien de php à ma page html pour que les liens accordées à tel ou telle personne soit affiché ou pas.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 mars 2017, 10:00

salut,

il existe plein de possibilités. Tu peux chercher ACL sur ton moteur de recherche préféré ;)
par exemple en utilisant le principe des droits unix (RWX), on peux imaginer une table (user_access par exemple) qui va contenir
- id de l'utilisateur (clef étrangère vers la table des utilisateurs)
- id de la page (clef étrangère vers la table des pages, oui c'est mieux d'avoir une table qui liste les pages dans ce cas histoire d'éviter les doublons).
- au choix
* soit une colonne qui contient une entier sur le principe unix (0 à 7) et en fonction du nombre tu sais si c'est rien, lecture, lecture / écriture, lecture / écriture/ exécution (ce cas ne semble pas approprié ici ;) )
* soit une simple colonne pour indiquer chaque droit indépendamment des autres
* soit rien d'autre. Pour une gestion simple d'accès en lecture il te suffit de vérifier le couple user_id, page_id si il est présent dans la table c'est l'accès est autorisé. tu peux aussi, à la connexion de l'utilisateur, charger cela en session (attention quand même au vol de session c'est pas a faire un accès admin).

dans tous les cas la clef primaire est le couple user_id, page_id !

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 19 Messages

07 mars 2017, 15:40

Merci pour votre retour moogli, je vais essayer çà.