- Php droits d'accès [Résolu] - PHP - Programmation
Marsh Posté le 11-03-2011 à 11:30:37
Perso j'aurais fais une vérification des droits dès l'authentification de la personne, comme ça si elle a les droits ou non tu affiches le menu que tu veux.
Marsh Posté le 11-03-2011 à 11:33:21
C'est à dire dès l'authentification ? sur la page login j'comprend bien, mais comment faire cela ?
Marsh Posté le 11-03-2011 à 12:06:14
Normalement lors de l'auth tu regardes si le couple login/password est bon. S'il l'est alors là tu regarde le droit de l'utilisateur et en fonction de ça tu construits ton menu.
En fait tu as juste à vérifier la valeur de la colonne droit de l'utilisateur.
Montre ton code sinon
Marsh Posté le 11-03-2011 à 12:14:39
Tout d'abord merci bcp d'essayer de m'aider !
Je vois a peu près ce que tu veux dire mais les idées au niveau du code sont encore un peu floues..
Voici mon code :
login.php
Code :
|
index.php
Code :
|
De plus, je viens de me rendre compte que j'ai 2 autres petits soucis : tout d'abord lorsque je tape le bon login et un faux password, j'arrive quand même à me connecter..
Et ensuite, pour les messages d'erreur $_SESSION['erreur'] = ""; il ne m'affiche pas le type d'erreur ('Login ou mot de passe non valide' Ou 'Tous les champs doivent être renseignés') il me renvoye directement sur l'index.. :S
Marsh Posté le 11-03-2011 à 12:18:17
Déjà tu initialises deux variables de sessions ($_SESSION['erreur'] =''; et $_SESSION['connexion'] =''; sans lancer le session_start() avant.
Donc place le session_start() au début de ton code.
Sinon dans ton script une fois l'utilisateur logué, tu dois pouvoir afficher $data[x] où x sera le numéro du champ "droit" de ta table. Et là tu fais un switch sur cette valeur. Si elle vaut 1 alors tu fais "header("Location: menu_avec_droit.php" );" et s'il n'a pas les droits "header("Location: menu_sans_droits.php" );"
Marsh Posté le 11-03-2011 à 12:30:13
Pour le premier petit soucis, ca y est ça fonctionne !
Ensuite pour le champ 'droit', dans menu je ne vois pas comment dire que si le membre connecté a les droit il peut accéder aux paramètres (ou l'inverse s'il na pas les droits il ne peut pas)
Désolée je suis débutante donc j'ai un peu de mal ^^
Marsh Posté le 11-03-2011 à 12:59:33
excuse moi mai ton code est un peu tous mélanger je trouve a mon gout lol
voici quelque erreur que je constate si je peu me premettre
donc on va commencer par login.php
1) je voi 2 variable $_session['erreur'] et $_session['connexion'] en debut de page sans un session_star() avant
2) tu demarre et enregistre 2 session importante $_session['login'] et $_session['pasword'] avant meme de savoir si le membre a entré les bons identifiants (sa c'est trop risqué!!!)
3) il n'y a aucun interet de mettre les erreur de login et password en session le mieux serai de les afficher dans la meme page ou par un exit(). exemple: exit('Une erreur est survenu');
ou alor tu incremente tes erreur exmple :
Code :
|
j'ai oublier je voi aussi que dans ta page index.php une erreur s'affiche en javascript ba la aussi c'est pas une tres bonne idée il sufit que le membre le desactive et hop plus d'erreur lol
voila en esperant t'avoir un peut aider mai si tu a des soucis ou des question ou quoi que ce soit n'esite surtout pas a +++
Marsh Posté le 11-03-2011 à 13:24:43
iOniOn95 a écrit : Pour le premier petit soucis, ca y est ça fonctionne ! |
Pour donner des droi a tes utilisateur il faut que dans ta table ou les membre son enregistrer tu rajoute un champ que tu nomme par exemple droit et tu lui met comme valeur par defaut 0 si il n'a pas les droits ou 1 si il les a.
apres tu cree une requette comme ceci :
Code :
|
Marsh Posté le 11-03-2011 à 14:07:07
Merci pour tes conseils et précisions
j'ai donc modifié l'emplacement de session_start() et enlevé les $_SESSION['erreur'] et $_session['connexion']
Ensuite pour la requête que tu as écrite, je la comprend bien mais ou dois-je la placer dans mon code pour que celle ci fonctionne ? j'ai déjà rajouté un champ "droit" avec comme valeur par défaut 0 et 1 pour ceux qui ont les droits.
Je me posais une question, est ce que ta façon de donner l'accès ou pas à des membres est bonne sachant que le membre passera par login.php (pour s'enregistrer), ensuite dirigé dans le menu.php, puis ensuite dans paramètre.php (et là il pourra y accéder ou non selon son droit).
Se ne serais pas plus pratique de bloquer l'accès directement sur la page parametre.php (si l'user n'a pas les droits) plutôt que sur la page login? Je ne sais pas si tu comprend bien ce que je veux expliquer par là car je ne trouve pas les mots pour expliquer clairement !
car selon ton exemple, après la page de connexion (login.php), il affichera "vous avez les droits pour acceder à cette page" (ou non) au lieu d'être redirigé dans menu.php
Marsh Posté le 11-03-2011 à 21:55:56
oui san oublier de mettre droi en session
Marsh Posté le 11-03-2011 à 22:17:58
keusty78 a écrit :
|
Marsh Posté le 11-03-2011 à 11:04:43
Bonjour, je suis actuellement en train de créer un site intranet mais je rencontre quelques problèmes..
Je vous explique : j'ai créé une table membres avec id, ab_pers_matricule, login, password et droit (0 s'il n'a pas les droits d'accès et 1 s'il les a)
j'ai donc un menu.php
J'aimerais faire une boucle sur Paramètres pour : Si droit = 0 alors accès refusé sinon si droit = 1 alors l'utilisateur pourra accéder aux paramètres.
Si vous avez des questions à me poser n'hésitez pas
Merci de bien vouloir m'aider !
Message édité par iOniOn95 le 23-03-2011 à 14:31:24