Hola,
Tengo un script de control en el que verifico que un usuario puede acceder a la aplicación, si es así, abro una sesión, asigno una variable y doy paso a otra pagina:
Código PHP:
if (mysql_num_rows($queryresult) == 1)
{
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: aplicacion.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
He verificado mediante trazas que entra por aqui y que realiza la asignacion correctamente. Pues bien, luego queria preguntar por esta variable de sesión en todas las paginas para ver que el usuario está autenticado mediante un include del código y no me funcionaba. He puesto el código a pelo y sigue sin funcionar. Después de todo este lio, he jugado de nuevo con las trazas y comentando cosas con la siguiente sorpresa, al entrar en la página a la que le mando y hacer dos echos (uno de la variable de sesion y otro de un string), sólo me saca el string, esto es, no me hace ni caso, no se ni siquiera el contenido de la variable, no me lo entiende pero no me peta.
Código PHP:
<?
/*//Inicio la sesión
session_start(); */
echo $_SESSION["autentificado"];
echo "Aqui estoy";
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
/*if ($_SESSION["autentificado"] == "SI") {
$entro = "SI";
}else
{
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}*/
?>
Vereis que he jugado con el if, cuando seria más simple !=, pero es que le he dado muchas vueltas, y al principio pense que iban por ahi los tiros.
No se si existe algún parámetro que no tenga bien definido, he estado revisando php.ini y me parece correcto.
¿Alguna idea?
Gracias,