Salut à tous,
J'ai un petit souci avec une de mes interfaces.
En effet, mon site nécessite une authentification par session.
Lorsque j'exécute un certain scripts externe, mes variables de session sont détruites anormalement et je ne peux continuer correctement sur le site, comment faire ?
Voici quelques bout de codes :
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 header_session.php <?php session_cache_limiter('private'); /* Configure le limiteur de cache à 'private' */ $cache_limiter = session_cache_limiter(); session_cache_expire(20); /* Configure le délai d'expiration à 30 minutes */ $cache_expire = session_cache_expire(); session_start(); /* Démarre la session */ require_once ('../scripts/fonctions.php'); // bibliotheques de fonctions // test si la session a été ouverte puis test si la session est toujours valide if(!isset($_SESSION['id_user'])) { header('Location: ../index.php?error=3'); exit; } elseif((time() - $_SESSION['timeout']) > 1200) // 1200 secondes = 20 min { header('Location: ../scripts/logout.php'); exit; } ?>
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 settings.php <?php session_start(); // Import des bibliotheques necessaires require_once ('../header_session.php'); // tests de session valide ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "<a href="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" target="_blank">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a>"> <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr"> <head> <title>Administration</title> <script type="text/javascript" src="../scripts/dropdown.js"></script> <link href="../css/page_generale.css" rel="stylesheet" type="text/css" /> </head> <body> <?php // Ici on est bien loggué, on affiche un message $site_name = get_site_name($_SESSION['id_site']) ; $der_connexion = get_last_connect($_SESSION['id_user']); ?> <div id="global"> <div id="header"></div> <div id="content"> <div id="setting_header"> <p class="infos_titre3">Panneau d'Administration</p> </div> <div id="setting_content"> <div id="navcontainer"> <?php require_once('menu_settings.php'); ?> </div> <div id="cadre"> <?php require_once('content_settings.php'); ?> </div> <div id="back"><br /> <a href="../scripts/logout.php"><img src="../images/close.png" alt="" width="30" height="30" title="Se Déconnecter ?" border="0" /></a> <a href="./index.php"><img src="../images/event_list.png" alt="" width="60" height="40" title="Liste des évènements" border="0" /></a></div> </div> <div id="setting_footer"></div> </div> <div id="footer"></div> </div> </body> </html>Ci vous souhaitez visualiser le résultat problématique, http://www.net-productions.fr/clients/myotis/index.php Login/MdP : developpez.com/test
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 content_settings.php <?php if(isset($_GET['menu']) && strcmp($_GET['menu'],'users')==0) { ?> <table width="100%" border="0" align="center"> <tr> <td width="15%" align="center"> <img src="../images/users.png" class="transparent" border="0" /><br /><br /> <a href="#">Creer Utilisateur</a> </td> <td width="85%"> <table width="95%" border="1" align="center" class="settings"> <tr bgcolor="#E7F0FE" align="center"> <td width="20%">Login</td> <td width="20%">Pwd</td> <td width="20%">Rôle</td> <td width="20%">Site</td> <td width="10%">Editer</td> <td width="10%">Suppr.</td> </tr> <?php connect(); $sql = "SELECT * FROM users"; $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql.'<br />'.mysql_error()); while($user = mysql_fetch_array($req)) { $site = get_user_site($user['id_site']); $role = get_user_role($user['id_role']); ?> <tr align="center"> <td width="20%"><?php echo $user['login']; ?></td> <td width="20%"><?php echo $user['password']; ?></td> <td width="20%"><?php echo $role['role_desc']; ?></td> <td width="20%"><?php echo $site['site_name']; ?></td> <td width="10%"><img src="../images/parametres.gif"></td> <td width="10%"><img src="../images/stop.gif"></td> </tr> <?php } ?> </table> <?php ?> </td> </tr> </table> <?php } elseif(isset($_GET['menu']) && strcmp($_GET['menu'],'synoptique')==0) { ?> synoptique <?php } elseif(isset($_GET['menu']) && strcmp($_GET['menu'],'tirs')==0) { ?> tirs <?php } elseif(isset($_GET['menu']) && strcmp($_GET['menu'],'zones')==0) { ?> zones <?php } elseif(isset($_GET['menu']) && strcmp($_GET['menu'],'capteurs')==0) { ?> capteurs <?php } elseif(isset($_GET['menu']) && strcmp($_GET['menu'],'stations')==0) { ?> stations <?php } elseif(isset($_GET['menu']) && strcmp($_GET['menu'],'sites')==0) { ?> sites <?php } ?>
Le problème se pose lorsque je bascule sur le panneau de configuration dans la section "utilisateurs" puis que je retourne via le bouton vers la liste des derniers évènements.
Il faut rafraichir la page et vous verrez "Role=Array" !??.§/.
Merci pour votre aide
Partager