Droit d'accès a des pages en php

Eléphant du PHP | 91 Messages

08 oct. 2009, 16:47

Bonjour,

J'ai un espace membre fonctionnant par session. Le grand classique.

Maintenant j'aimerais grâce au php autoriser certain membre et d'autre non a pouvoir accéder a certaines page à l'intérieur meme de l'espace membre

Savez-vous comment ce type de systeme fonctionne en php?

Merci

Mammouth du PHP | 985 Messages

08 oct. 2009, 16:59

Bonjour,
Tu pourrais par exemple ajouter un nouveau champ dans ta table utilisateurs.
Un ID correspondant à un groupe d'utilisateurs et donc autoriser certaines pages de ton site suivant un groupe.
1 = rang 1, 2 = rang 2... -> si l'utilisateur possède un rang supérieur ou égale à un rang particulier
-> accepter ou refuser l'accès à cette page...

Voila comment je ferais personnellement mais il existe surement d'autres possibilités :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 369 Messages

08 oct. 2009, 17:21

Salut,
Bonjour,
J'ai un espace membre fonctionnant par session. Le grand classique.
Maintenant j'aimerais grâce au php autoriser certain membre et d'autre non a pouvoir accéder a certaines page à l'intérieur meme de l'espace membre
Savez-vous comment ce type de systeme fonctionne en php?
Merci
Qui dit zone privative dit login & passwd... .htaccess te permet de faire ca sans trop de dificulté.

'tite url pour la route : http://www.commentcamarche.net/contents ... pacht.php3

@+ bon code ;)

Eléphant du PHP | 91 Messages

08 oct. 2009, 23:36

Salut,
Bonjour,
J'ai un espace membre fonctionnant par session. Le grand classique.
Maintenant j'aimerais grâce au php autoriser certain membre et d'autre non a pouvoir accéder a certaines page à l'intérieur meme de l'espace membre
Savez-vous comment ce type de systeme fonctionne en php?
Merci
Qui dit zone privative dit login & passwd... .htaccess te permet de faire ca sans trop de dificulté.

'tite url pour la route : http://www.commentcamarche.net/contents ... pacht.php3

@+ bon code ;)
C'est une idée

Eléphant du PHP | 91 Messages

08 oct. 2009, 23:37

Bonjour,
Tu pourrais par exemple ajouter un nouveau champ dans ta table utilisateurs.
Un ID correspondant à un groupe d'utilisateurs et donc autoriser certaines pages de ton site suivant un groupe.
1 = rang 1, 2 = rang 2... -> si l'utilisateur possède un rang supérieur ou égale à un rang particulier
-> accepter ou refuser l'accès à cette page...

Voila comment je ferais personnellement mais il existe surement d'autres possibilités :wink:

Dis moi, ca s'appellerait pas des privilèges par hasard?

Mammouth du PHP | 985 Messages

09 oct. 2009, 00:02

Je dirais plus: Gestion de groupes utilisateurs pour le système en général.
Ensuite chaque utilisateur dispose de certains privilèges (ou droits), acquis grace à son groupe.

C'est peu le principe des forums:
- Groupe invité (ID = 0)
- Groupe Membres (ID = 1)
- Groupe Modérateurs (ID = 2)
- Groupe Administrateurs (ID = 3)
Chaque groupe dispose de certains privilèges ou droits, et chaque utilisateur reçoit les droits ou privilèges que dispose son propre groupe...

A partir de ton espace membre, tu utilises surement une base données pour stocker les logins et passwords..
Il suffit donc d'ajouter un nouveau champ qui contiendra un ID (correspondant au groupe).
Cet ID indique donc à quel groupe appartient l'utilisateur.
Dans certaines pages:
Une comparaison entre l'ID (ou groupe) minimum spécifié pour accéder à la page et l'ID (ou groupe) que possède l'utilisateur.
(L'ID de l'utilisateur étant, par exemple, ensuite stocké grace aux sessions...)

Cela correspond exactement à ce que tu voulais faire?
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
AB
ViPHP | 5818 Messages

09 oct. 2009, 04:42

M'oui j'aurais tendance à préférer la solution des privilèges accordés avec un champ en bdd plutôt que par un .htaccess, surtout si tu utilises déjà une bdd pour ton site.

La solution .htaccess est plus rapide à mettre en oeuvre mais moins sexy et surtout moins souple ...

Enfin bon les deux grands principes ont été énoncés, à toi de voir :wink:

Eléphant du PHP | 91 Messages

09 oct. 2009, 12:37

Je dirais plus: Gestion de groupes utilisateurs pour le système en général.
Ensuite chaque utilisateur dispose de certains privilèges (ou droits), acquis grace à son groupe.

C'est peu le principe des forums:
- Groupe invité (ID = 0)
- Groupe Membres (ID = 1)
- Groupe Modérateurs (ID = 2)
- Groupe Administrateurs (ID = 3)
Chaque groupe dispose de certains privilèges ou droits, et chaque utilisateur reçoit les droits ou privilèges que dispose son propre groupe...

A partir de ton espace membre, tu utilises surement une base données pour stocker les logins et passwords..
Il suffit donc d'ajouter un nouveau champ qui contiendra un ID (correspondant au groupe).
Cet ID indique donc à quel groupe appartient l'utilisateur.
Dans certaines pages:
Une comparaison entre l'ID (ou groupe) minimum spécifié pour accéder à la page et l'ID (ou groupe) que possède l'utilisateur.
(L'ID de l'utilisateur étant, par exemple, ensuite stocké grace aux sessions...)

Cela correspond exactement à ce que tu voulais faire?
Oui, c'est exactement cela, donc je pense qu'il faut intégrer l'ID du groupe dans le script de protection des pages de l'espace membre

ViPHP
AB
ViPHP | 5818 Messages

09 oct. 2009, 17:34

Oui, c'est exactement cela, donc je pense qu'il faut intégrer l'ID du groupe dans le script de protection des pages de l'espace membre
Oui enfin fait plutôt ton script de protection dans une page séparée que tu incluras par un require dans chaque page à protéger, c'est plus facile pour la maintenance.

ViPHP
ViPHP | 2291 Messages

09 oct. 2009, 18:39

Salut,

Un avis perso je trouve le fichier htaccess totalement inutile a partir du moment ou tu utilise MySQL pour gerer tes utilisateurs, il suffit de rajouter un champ rang ou droit ou autre et créer ainsi une hiérarchie pour tes pages :)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 91 Messages

10 oct. 2009, 11:05

OK

Cette solution est pour autorisé l'accès à des groupes d'utilisateurs.

Mais quelle solution préconisée pour des autorisations d'accès individuelles? Au cas par cas?

Mammouth du PHP | 985 Messages

10 oct. 2009, 11:33

Exactement la même, non?

Sauf que quand tu auras pleins d'utilisateurs, tu t'apercevras que plusieurs disposent des mêmes droits d'accès et donc qu'ensuite la création de groupes utilisateurs te simplifieras la vie pour la gestion de tous ces utilisateurs...

Pour les pages strictement réservées à un membre en particulier, base toi simplement sur le login qui devrait être unique...
En spécifiant dans ta base Sql, que le champ login est unique.
(Mais attention -> bien prendre en compte la casse dans la vérification du login)

Sinon te reste la solution htaccess, mais qui serait dommage pour toutes les raisons qui ont déjà été cité.
Tu disposes d'une base de donnée évoluée, il faut donc l'exploiter -> elle est faite pour cela.
Les fichiers htaccess te serviront pour d'autres raisons et seront déjà bien assez sollicités :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 91 Messages

11 oct. 2009, 09:14

Exactement la même, non?

Sauf que quand tu auras pleins d'utilisateurs, tu t'apercevras que plusieurs disposent des mêmes droits d'accès et donc qu'ensuite la création de groupes utilisateurs te simplifieras la vie pour la gestion de tous ces utilisateurs...

Pour les pages strictement réservées à un membre en particulier, base toi simplement sur le login qui devrait être unique...
En spécifiant dans ta base Sql, que le champ login est unique.
(Mais attention -> bien prendre en compte la casse dans la vérification du login)

Sinon te reste la solution htaccess, mais qui serait dommage pour toutes les raisons qui ont déjà été cité.
Tu disposes d'une base de donnée évoluée, il faut donc l'exploiter -> elle est faite pour cela.
Les fichiers htaccess te serviront pour d'autres raisons et seront déjà bien assez sollicités :wink:
Oui, effectivement