En mis aplicaciones web PHP utilizo sesiones para guardar toda la información del usuario. No uso cookies salvo la cookie que contiene el id
de la sesión.
El problema es que cuando el usuario visita su perfil se desconecta del sitio porque se encuentra en un subdominio (perfil.ejemplo.com
) en vez de en el dominio principal del sitio (ejemplo.com
).
Así que la pregunta es si existe alguna manera de que las sesiones PHP permanezcan activas para cualquier subdominio del sitio (*.ejemplo.com
).
Estás leyendo una traducción autorizada de la pregunta Allow php sessions to carry over to subdomains planteada por Anthony en StackOverflow.
Respuestas
Estas son las cuatro posibles soluciones a este problema. Te aconsejo que las pruebes en orden y te quedes con la primera que te funcione (no tienes que utilizarlas todas a la vez):
1. Añade lo siguiente en tu archivo php.ini
y reinicia el servidor web:
session.cookie_domain = ".ejemplo.com"
2. Añade lo siguiente en el archivo .htaccess
de tu proyecto:
php_value session.cookie_domain .ejemplo.com
3. Añade la siguiente instrucción en tu aplicación PHP antes de la instrucción session_start()
:
ini_set('session.cookie_domain', '.ejemplo.com');
4. Añade la siguiente instrucción en tu aplicación PHP antes de la instrucción session_start()
:
session_set_cookie_params(0, '/', 'ejemplo.com', false, false);
@librosweb