Bueno, ver como trabaja tu aplicación, requeriria ver si esta todo correcto, te dejo una pequeña guia de como hacerlo, despues tendrias que adaptarlo
Para trabajar con sesiones, primero te conviene entender bien como trabajan
tedejo el codigo de tres archivos
sesion.php (es el inicio o página de acceso)
Código PHP:
Ver original<?php
if(isset($_SESSION['logueado'])){ if($_SESSION['logueado'] == "si"){
echo "conectado como <b>" . $_SESSION['usuario'] . "</b>\n";
echo "<a href='salir.php'>Cerrar sesion</a>";
}else{
echo "Inicia sesión <a href='loguin.php'>aqui</a>";
}
}else{
echo "
<form action='loguin.php' method='post'>
usuario <input type='text' name='ingreso_usuario' value=''>
<input type='submit' name='procesar_ingreso' value='ingresar'>
</form>
";
echo "Inicia sesión <a href='loguin.php'>aqui</a> [genera un error ya que no hay post]";
}
?>
<hr>
<p>Ver cookies de sesion</p>
<?php
foreach ($_COOKIE as $indice=>$str){
$$indice = $str ;
echo "$indice = $str \n";
}
?>
<p>Ver variables de sesion</p>
<?php
foreach ($_SESSION as $indice=>$str){
$$indice = $str ;
echo "$indice = $str <br>";
}
?>
loguin.php, aqui se crean las variables de sesion (una vez que veriificas el usuario correcto, yo en el ejemplo no valido nada, solo que se haga el post)
Código PHP:
Ver original<?php
if(isset($_POST['procesar_ingreso'])){ $ingreso_usuario = $_POST['ingreso_usuario'];
}else{
echo "error, no hubo post";
}
$_SESSION['logueado'] = "si";
$_SESSION['usuario'] = $ingreso_usuario;
// para hacer el test deshabilitamos la redirección automática a través de headers
//header('Location: sesion.php');
echo "<br><a href='sesion.php'>ir al inicio</a>";
?>
<hr>
<p>Ver cookies de sesion</p>
<?php
foreach ($_COOKIE as $indice=>$str){
$$indice = $str ;
echo "$indice = $str \n";
}
?>
<p>Ver Variables de sesion</p>
<?php
foreach ($_SESSION as $indice=>$str){
$$indice = $str ;
echo "$indice = $str <br>";
}
?>
salir.php (el logout, cierre se sesion y expiracion de cookie de sesion)
Código PHP:
Ver original<?php
if (ini_get("session.use_cookies")) { $params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// para hacer el test deshabilitamos la redirección automática a través de headers
//header('Location: sesion.php');
echo "<br><a href='sesion.php'>ir al inicio</a>";
?>
<p>Ver cookies de sesion</p>
<?php
foreach ($_COOKIE as $indice=>$str){
$$indice = $str ;
echo "$indice = $str \n";
}
?>
<p>Ver variables de sesion</p>
<?php
foreach ($_SESSION as $indice=>$str){
$$indice = $str ;
echo "$indice = $str <br>";
}
?>
Como verás eliminé la redireccion automática para que puedas analizarlo, y al pie de cada archivo, deje a manera de debug, que te muestre los valores actuales. para la cookie y para las variables de sesion.
Cuando entiendas bien el funcionamiento, creo que te será más fácil resolver tu problema.
Sería oportuno tambien que pidas muevan tu post al foro de php
Saludos