par
béka » 19 juin 2007, 15:07
Bonjour,
pourquoi est-ce que je n'arrive pas à detérminer quelle session est ouverte ?
j'ai deux fichiers, un qui permet l'identification et un qui vérifie quel session est ouverte pour donner accès à telle ou telle partie du fichier.
voici mes codes :
foreach($xmlroot->childNodes as $info_user)
{
if($info_user->nodeType== XML_ELEMENT_NODE)
{
//on compare les identifiants avec ceux inscrits dans le fichier xml
if ( ($identifiant == ($info_user->getAttribute('name'))) && ($mdp == ($info_user->getAttribute('mdp'))) )
{
session_name($info_user->getAttribute('droit'));
session_start(session_name());
$session = $info_user->getAttribute('droit');
if ($session == 'sadmin')
{
$_SESSION['sadmin']= $session ;
header("Location: home.php");
}
elseif ($session == 'admin')
{
$_SESSION['admin']= $session ;
header("Location: home.php");
}
}
else
{
require ("index.php"); // l'utilisateur n'a pas été reconnu, on redirige vers le formulaire de connexion
}
}
}
et le fichier home.php :
<?php
session_start();
//on vérifie que l'utilisateur s'est bien identifié
if (!isset($_SESSION['admin']))
{
echo "admin";
}
elseif (!isset($_SESSION['sadmin']))
{
echo "super admin";
}
?>
Merci
ok alors, c'est bon j'ai trouvé. Le problème venait du fait que je donnais come nom à ma session le nom d'un attribut d'un fichier xml.
Désormais, je lui ait donné un nom fixe et cela marche.
if ( ($identifiant == ($info_user->getAttribute('name'))) && ($mdp == ($info_user->getAttribute('mdp'))) )
{
session_name('administration');
session_start(session_name());
$session = $info_user->getAttribute('droit');
if ($session == 'sadmin')