Prblème de session - PHP

Résolu
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Membre Dernière intervention   171
 
Bonjour,

impossible, tu ne donnes pas tout ton code ! lol

A+
Gaerebut
0
a70m Messages postés 2763 Date d'inscription   Statut Contributeur Dernière intervention   217
 
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 765 Date d'inscription   Statut Membre Dernière intervention   239
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   28
 
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 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Merci à vous, je viens de faire les modifications cela fonctionne parfaitement.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Ce n'est pas vraiment la solution.
Pour moi, la meilleure des solutions est de désactiver cette option.
0