Bonjour à tous,
Pour un site perso, je souhaite limiter l'accès à certaines pages uniquement à des personnes identifiées et encore limiter l'accès à certaines pages aux personnes identifiées par un niveau de sécurité ('total' ou 'limite' dans ma bdd)
Voilà un bout de code au moment de l'authentification :
Dans mon admin, j'ai donc un petit formulaire qui me permet de modifier le nom, le niveau de sécurité ... :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $req=mysql_query("SELECT nom, securite FROM login WHERE login='$login' AND pass='$passw'"); $nb=mysql_num_rows($req); if($nb==1){ while($res=mysql_fetch_array($req)){ $nom=$res['nom']; $securite=$res['securite']; } session_start(); $_SESSION['id']=session_id(); $_SESSION['nom']=$nom; $_SESSION['securite']=$securite; header("location:accueil.php"); } else{ header("location:erreur.php"); }
Formulaire traité de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <form action="log.php" method="post"> <p> <label>Nom :</label> <input type="text" name="nom_modif" value="<?php echo $nom; ?>"> <input type="hidden" value="<?php echo $id; ?>" name="lid"> </p> <p> <label>Niveau Sécurité:</label> <select name="niveau_secu_modif"> <option value="<?php echo $niveau_admin; ?>"><?php echo $niveau; ?></option> <option value="1">Accès limité</option> <option value="2">Accès total</option> </select> </p> <p>Souhaitez-vous modifier l'identifiant et le mot de passe : <input type="radio" value="non" name="modif_id" checked>non <input type="radio" value="oui" name="modif_id">oui</p> <p> <label>Identifiant :</label> <input type="text" name="log_modif"> </p> <p> <label>Mot de Passe :</label> <input type="text" name="pass_modif"> </p> <div style="margin-left: 200px; margin-top:20px;"> <input type="image" src="image/bouton_modif.jpg" onmouseover="this.src='image/bouton_modif2.jpg'" onmouseout="this.src='image/bouton_modif.jpg'"> <a href="log_modif.php?modif_log=<?php echo $id;?>"><img src="admin_image/bouton_reset.jpg" border="0" onmouseover="this.src='admin_image/bouton_reset2.jpg'" onmouseout="this.src='admin_image/bouton_reset.jpg'"></a> </div>
Et c'est là que ça coince (sur le serveur distant parce qu'en local avec esayphp ça fonctionne parfaitement) lorsque que je fais une modification du nom ou du niveau de sécurité je me retrouve sous la session de la personne que je viens de modifier (donc $_SESSION['nom'] et SESSION['securite'] changent de valeur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 if(isset($_POST['nom_modif'])){ $extraction=extract($_POST, EXTR_OVERWRITE); $nom_modif=addslashes($nom_modif); if($modif_id=="non"){ $sql3="UPDATE login SET nom='$nom_modif', securite='$niveau_secu_modif' WHERE id='$lid'"; $req3=mysql_query($sql3, $connection); } if($modif_id=="oui"){ $log_ajout2=trim($log_modif); $login_modif3=SHA1($log_ajout2); $pass_ajout2=trim($pass_modif); $pass_modif3=SHA1($pass_ajout2); $sql5="UPDATE login SET nom='$nom_modif', securite='$niveau_secu_modif', pass='$pass_modif3', login='$login_modif3' WHERE id='$lid'"; $req5=mysql_query($sql5, $connection); } if(isset($req5)||isset($req3)){ $num_mess="23"; } else{ $num_mess="0"; } }
et si je me relogue sous mon vrai nom il me reconnait toujours sous le mauvais nom et le mauvais niveau de sécurité donc un changement de cookie en plus ??!!
J'y comprends plus rien ...
Merci pour votre aide ...
Partager