bonjour à tous,
je travail sur une application ou j'ai prevu une page de connexion ou l'on s'identifie avec un indifiant et un mot de passe; ensuite en fonction de son groupe d'utilisateur on a acces à une interface particuliere. mon soucis est de proteger ces differentes de telle sorte qu'on ne puissent pas y acceder sans s'etre identifier, par exemple en tapant l'url de la page. j'utilise les sessions donc pour le faire. apres saisie de l'identifiant, du mot de passe et validation la methode action du formulaire execute la page 'menu.php' donc voici le code :
voici le code d'une interface dont je souhaite proteger l'acces, par exemple 'vue1.php' et pratiquement le mm pour toute les autres interfaces:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <!-- page du menu de l'application de gestion --> <?php session_start(); // recupere les saisies du formulaire de connexion $id=$_POST['id']; $pwd=$_POST['pwd']; // on verifi si l'utilisateur à saisit son identifiant et son mot de passe if(empty($_POST['id']) && empty($_POST['pwd']) ) { echo ("saisissez un loggin et un mot de passe"); } else { // on indique le fichiers qui contient toutes les fonctions qui vont etre utilisees include_once('mes_fonctions.php'); // connexion a la base de données connection_bd(projetcourier); $requette= "select * from UTILISATEURS where identifiant='$id' and motdepasse='$pwd' "; $donnees=requette_sql($requette); $ligne1=mysql_fetch_array($donnees); deconnection_bd(); if (!$ligne1) { echo (" identifiant ou mot de passe incorrect"); } else { // conserve l'identifiant et le motdepasse de l'utilisateur pour le teste d'acces des differentes vues $_SESSION['login']=$ligne1['indentifiant']; $_SESSION['password']=$ligne1['motdepasse']; //recupere le groupe de l'utilisateur $id_groupe=$ligne1['id_groupe']; switch($id_groupe) { case 6: header("location:vue5.php");break;// interface service admin et finan. case 5: header("location:vue4.php");break;// interface service des operations case 4: header("location:vue3.php");break;// interface enlevement et livraison case 3: header("location:vue2.php");break;// inteface arrivee-depart case 2: header("location:vue1.php");break;// interface receptionniste case 1: header("location:vue6.php");break;// interface administrateur break; } } } ?>
mon probleme est le suivant: la protection ne marche que apres avoir redemare ma machine et quand je n'ai pas encore eu a me connecte avec un indentifiant et un mot de passe correcte. des que je me suis deja connecte une fois ,, la protection des pages ne fonctionne plus , on peut les ouvrir simplemnt en saisissant l'url a partir du navigateur, ce que je veux controler .
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <!-- interface receptionniste --> <?php session_start(); if (!isset($_SESSION['login']) && !isset($_SESSION['password']) ) { header("Location:index.php"); exit(); } else { // ini_set('include_path','C:\Program Files\wamp\www\Projet courier\inc'); ?> <div id="menu_header"> <?php include ("menu_header.php"); ?> </div> <div id="conteneur" > <div id="vue1_menu"> <?php include ("vue1_menu.php"); ?> </div> <div id="menu_contenu"> <?php include ("vue1_contenu.php"); ?> </div> </div> <div id="menu_footer"> <?php include ("footer.php"); ?> </div> <?php } ?>
ou est le probleme ?
merci pour vos reponses et exemple ...
Partager