Prblème de session - PHP

Résolu/Fermé
le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 - 17 avril 2010 à 13:41
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 19 avril 2010 à 18:43
Bonjour à tous,

Problème : mon site possède une page d'identification derrière laquelle se trouve une page de log qui inscrit en session l'id de l'utilisateur logué. Si la personne a les droit "Admin" il peut alors voir et modifier des données des membres enregistré. MAIS, quand l'admin se rend sur le formulaire de modification, la session prend l'id de la personne modifier.

Exemple : l'admin à l'id = 1, le membre l'id 2. L'admin se logue la session prend donc l'id 1. l'admin modifie le membre la session prend l'id 2.

Code ou l'id change (formulaire de modification) :

//id = 1
print $_SESSION['id']."--";

//On récupère l'id du membre à modifier
//id = 2
$id = $_GET['ident'];

//id = 2
print $_SESSION['id']."--";

Ma question est donc pourquoi et comment remédier à ce problème?

Merci de vous penchez sur mon problème.

7 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
17 avril 2010 à 13:51
Bonjour,

impossible, tu ne donnes pas tout ton code ! lol

A+
Gaerebut
0
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
17 avril 2010 à 13:59
Salut.

Personnellement, je fais un espace membre à niveaux.

Un membre simple et de niveau 2 (1 à l'inscription, 2 si l'adresse e-mail est validée)

Et l'admin est niveau 50 (je laisse une marge pour créer d'autre niveaux entre.

Ensuite, je mets des
if($_SESSION['niveau'] == 50)
partout.
Par exemple dans le menu membre.

if($_SESSION['niveau'] >= 2)
On affiche un lien vers la page 'Mon Compte'

Puis pour les admins :
if($_SESSION['niveau'] == 50)
Un lien vers la pages 'Les Membres' qui permet de modifier les infos des membres, etc. ...

Si tu as besoin de plus amples précisions, contacte-moi.

Cordialement
0
le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
18 avril 2010 à 15:56
Si cela peut aider

Code du bouton modifier :
//$user est un tableau qui contient les données du membre
<a href="menu.php?page=Admin/modify.php&ident=<?php echo $user['id'] ?>">Modifier</a>

Code ou je récupère l'id passé en paramètre dans le bouton :

print $_SESSION['id']."--";

$id = $_GET['ident'];
print $_SESSION['id']."--";
$select = "select * from Users where id=".$id.";";
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
18 avril 2010 à 16:04
Certains hébergeurs activent l'option register_global, ce qui fait que une variable portant le nom des clées des données GPC (GET, POST, COOKIES) est créée.
Donc si tu modifies $id, tu modifies aussi $_SESSION['id'].
1&1 a cette option d'activée ; je te conseil de le passer en PHP5 (PHP4 par défaut), cette option sera désactivée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
billwate Messages postés 48 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 19 avril 2010 28
19 avril 2010 à 01:01
Tout est expliqué par avion-f16. Pour éviter ce désagrément, il suffit juste de mettre l'id 2 dans une autre variable; par exemple : $id2 = $_GET['ident'];
0
le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
19 avril 2010 à 13:34
Merci à vous, je viens de faire les modifications cela fonctionne parfaitement.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
19 avril 2010 à 18:43
Ce n'est pas vraiment la solution.
Pour moi, la meilleure des solutions est de désactiver cette option.
0