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 :
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 :
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> |
Code :
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
}
?> |
Ci vous souhaitez visualiser le résultat problématique,
http://www.net-productions.fr/clients/myotis/index.php Login/MdP : developpez.com/test
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