El login lo hago por ajax, esta es la página que los autentica
Código PHP:
if (isset($_POST['Email']))
$nick = $_POST['Email'];
if (isset($_POST['Clave']))
$pass = $_POST['Clave'];
/*Busco los datos del usuario en db*/
$usuarios = $mysql_fetch_obj($resultado);
if(count($usuarios) > 0)
{
$data_usuarios = $usuarios[0];
$_SESSION['IdUsuario'] = $data_usuarios ->IdUsuario;
$_SESSION['Nombre'] = $data_usuarios ->Nombre;
$_SESSION['Apellido'] = $data_usuarios ->Apellido;
$_SESSION['Tipo'] = $data_usuarios ->Tipo;
$_SESSION['Pais'] = $data_usuarios ->Pais;
$_SESSION['MM_Habilitado'] = 1;
$conectado = true;
}else{
$conectado = false;
}
echo json_encode(array("conectado"=>$conectado));
__________________________
Ahora ya vi lo que está pasando, y al menos ya logro entender por qué solo sucede la primera vez.
Lo que está pasando es así:
- Voy a ejemplo.com/index.php tengo session_id() 123
- hago login, el formulario regresa true, todos los dados quedan en $_SESSION y me da acceso al menú. Hasta aquí perfecto.
- Voy a lista_autos.php aún tengo session_id() 123 así que todos los datos siguen en $_SESSION, hasta aquí perfecto.
- Doy click a uno de los autos y eso me lleva a ver_auto.php, por alguna razón esta página me crea una sesion nueva con el id 456, y por eso no encuentra los datos en sesion, entonces me saca y me redirige a index.php, el cual tiene ahora session_id 456 y por eso aparezco deslogueado.
- Me logueo nuevamente, los datos vuelven a quedar guardados pero ahora con el id 456
- Repiro el proceso y ahora cuando llego a ver_auto.php se mantiene el id 456 porque fue el que esta misma página generó y entonces todos mis datos están ahí. Por eso la segunda vez funciona perfecto.
Ahora necesito averiguar por qué ver_autos.php me está creando una sesión nueva con id 456 en lugar de mantener la anterior con id 123.