Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2011, 11h57   #1
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Par défaut Gestion des groupes dans un panel d'administration

Bonjour à tous !

Voilà ma question :
Je suis en développement d'un site web et j'aimerais savoir la "meilleure" solution pour gérer les groupes de membres sur son site.
Donc imaginons mon site comporte des membres, des administrateur, et des modérateur...

Voilà ce que j'ai fait :
table fonction : id, libelle.
table membre : id, nom, prenom.....
table membre_appartenir_fonction : id_membre, id_fonction

Je me demande maintenant comment codifier ceci en PHP. Utiliser des SESSION pour stocker l'id de la fonction et faire des genre de :
Code :
1
2
if($_SESSION['fonction'] = 1) 
echo administrateur
?

Mais cela me parait facilement contournable... Donc ma question repose davantage sur un point de vue sécurité.

Merci à tous ceux qui m'auront lu jusqu'au bout, et peut être répondu
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 12h36   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

dans ce genre de problématique, j'ai envie de dire : pourquoi réinventer la roue ?

tu peux utiliser les composants Zend_Acl et Zend_Auth par exemple afin de mettre en place une gestion des authentifications / autorisations fiable
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 13h08   #3
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Bonjour !

Il est vrai que d'utiliser l'existant serait simple. Mais je n'ai pas vraiment "le temps" d'apprendre ce framework pour ce site... Il est préférable pour moi de tout coder... Car ce site sera un composant de mon BTS Informatique de Gestion... Il est alors normal de devoir le codé en entier...

Bref, donc comment m'y prendre sans utiliser d'existant ?
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 13h21   #4
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Je ne sais pas si c'est la meilleure des solutions mais personnellement je procède comme ceci:

Dans mon fichier header.php (qui est en fait l'entête de mes pages) je fais une vérification systématique de l'user:

Login.php -> si membre ok, $_SESSION['id_user'] = l'id_user_bdd

header.php-> switch $_SESSION['id_user'] pour faire echo de ton administrateur, modérateur, utilisateur avec un include de ce que tu veux (administrateur inclura une page != de l'utilisateur... Logique ^^)

Cette solution est largement suffisante pour le BTS. Je sais, j'ai passé le bts ig l'année dernière.

Sinon, pour ce qui est d'une vraie solution en production serait je pense d'avoir un serveur dédié et d'installer memcacheD, de stocker le type de personne dans une variable memcacheD et au lieu d'interroger la bdd, interroger le serveur memcacheD.

edit: La solution de memcacheD est à utiliser si vraiment le site à un fort traffic... Pour un site normal, ça ne sert pas à grand chose un dédié.

Voilà. Cordialement, Guillaume.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/01/2011, 16h52   #5
Membre actif
 
Inscription : décembre 2006
Messages : 184
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 184
Points : 198
Points : 198
utiliser une session pour stocker des choses sensibles est fait pour cela

donc oui c'est sécurisé le problème de sécurité intervient plus sur comment tu initialise la session.
Helfima est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/01/2011, 18h39   #6
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Ok !

Donc si j'ai un panneau utilisateur quand on est loggé, et que je veux afficher un lien vers un repertoire, je peux donc faire :

Code :
1
2
3
4
5
6
7
8
<?php
if ($_SESSION['fonction'] == 1)
{
?>
<a href="admin/index.php">Panneau d'admin</a>
<?php
}
?>
Bien sur, sur ma page admin/index.php je vérifie à chaque fois l'utilisateur dans la base de donnée comme le dit radicaldreamer.

C'est super alors si ça marche ça va me simplifier la vie

Merci beaucoup !
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h03.


 
 
 
 
Partenaires

Hébergement Web