[Pregunta]: Problema con las sesión en el hosting

Iniciado por Leguim, 25 Diciembre 2021, 19:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Hola,

bueno estoy teniendo un problema medio raro que la verdad no estoy seguro de si es un problema o algo normal. Por lo menos en las aplicaciones web más conocidas no les pasa.

Cuando inicio sesión ingresando a "mipagina.com" se guarda la sesión y todo bien.. me redirige a donde me tiene que mandar y me bloquea aquellas partes donde se necesita no tener la sesión iniciada.

Ahora, escribe en la url "https://www.mipagina.com" y no tiene la sesión que se generó anteriormente, es como si fuera una "ventana de incógnito" en cuanto al tratamiento que se le da a la sesión. En esta url me deja volver a iniciar sesión y puedo hacerlo con otra cuenta exactamente igual que en las ventanas de incógnito.

¿Alguna idea?

MinusFour

Simplemente configura el dominio de la cookie usada por session.

Código (php) [Seleccionar]

session_set_cookie_params(0, '/', 'mipagina.com');


O con php 7.3 en adelante:

Código (php) [Seleccionar]

session_set_cookie_params([ 'domain' => 'mipagina.com']);


O lo configuras en el php.ini...

https://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain

Tambien podrías hacer un redirect de www.mipagina.com a mipagina.com.

Leguim

Lo hice así con el segundo método que me pasaste, y lo puse antes del session_start(); pero es como si no trabajara y no hiciera nada.

PD: Es un hosting compartido.

MinusFour

Necesita estar antes de cualquier session_start. Revisa la cookie desde las herramientas de desarrollador, tiene que incluir el dominio. Si aparece el dominio raíz (e.g. mipagina.com) y no el subdominio entonces la cookie debería enviarse correctamente a cualquiera de los dos hosts.

Si eso no funciona podría ser tu hosting o algo más que estés haciendo.

session_set_cookie_param regresa un valor booleano para indicar si la operación tuvo éxito o no. Lo único que se me ocurre quizás es que sea necesario indicar un tiempo de vida a la cookie.

Código (php) [Seleccionar]

session_set_cookie_params([ 'lifetime' => 0, 'domain' => 'mipagina.com' ]);

Leguim

Gracias, ahí funciona bien. Era que tenía que destruir la cookie para que se actualice con la nueva configuración.