Hola a todos,
Estoy teniendo problemas con las sesiones en PHP, basadas en cookies, resulta que el navegador no guarda la información del la sesión ni el servidor las de las variables asociadas.
Tengo un aplicativo que hasta hace poco funcionaba correctamente y de un tiempo para acá se pierde la sesión entre llamadas, tengo la impresión de que el proveedor de alojamiento cambió la versión de PHP pero ignoro si esto tendrá algo que ver.
Para individualizar (aislar) el problema he escrito el siguiente código:
Código:
error_reporting(E_ALL); //onlydebug
session_start();
echo session_id()."<hr/>";
if (isset($_SESSION['validar'])) {
echo $_SESSION['validar'];
} else {
echo "No está cargada la variable de sesión";
}
$_SESSION['validar'] = "OK";
echo '<hr/><a href="">Recargar</a><hr/>';
print_r(session_get_cookie_params());
echo '<hr/>';
phpinfo();
Como podéis ver he reducido el código al mínimo necesario para probar la sesión y una variable de sesión, además de mostrar el estado de la conexión y del php.
El caso es que en localhost todo funciona perfectamente, pero al subirlo al servidor el navegador no guarda la sesión (lo sé porque la id de sesión cambia entre llamadas), a pesar de estar configurado para guardar todas las cookies sin restricciones. He probado en otro PC dónde parece guardar la cookie PHPSESSID correctamente (no cambia) pero aún así no se conserva la variable de sesión 'validar'.
Al buscar la cookie correspondiente en los navegadores, esta no aparece (salvo en el PC que sí la mantiene).
Revisando la información de phpinfo() veo diferencia de versiones de PHP ( en localhost es 5.5.38 y en el alojamiento es 7.1.7) pero toda la información del acápite 'session' es idéntico en ambos servidores, salvo que la versión 7.1.7 incluye dos variables nuevas: session.sid_bits_per_character y session.sid_length, que según la documentación no deben afectar el proceso.
No he encontrado información específica para el problema y la que he encontrado generalmente el problema se debe a código superfluo introducido por el propio progamador, pero nada que solucione o me explique que está pasando.
¿Alguna idea de qué se me puede estar escapando?, agradezco cualquier ayuda, ya se me acaban las opciones.
... LumAuro