He intentado mantener valores de sesión entre dos subdominios y me pareció imposible. Terminé la creación de 2 páginas web PHP mínimos como un banco de pruebas, uno que llamo 'prueba 1' sólo estableceMantenimiento de variables de sesión en subdominios
$_SESSION['test'] = "Fred";
y tiene un hipervínculo a 'prueba de 2', que simplemente trata de eco del valor de $ _SESSION [ 'prueba'] para demostrar que funcionó, o no. Pongo 'prueba 1' en mi dominio www y 'prueba 2' en mi subdominio. Intento varias versiones de lo que debería ir en el encabezado, de varias fuentes. Estas son las principales 3 (y por supuesto sus variantes):
ini_set('session.cookie_domain',substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100));
session_start();
o
ini_set('session.cookie_domain','mydomain.com');
session_start();
o
ini_set('session.cookie_domain', PHP_INI_ALL);
session_start();
o
session_set_cookie_params(0, "/", ".mydomain.com", false);
session_start();
Me parece que tengo una resultado idéntico en todos los casos. La sesión no se transmite a través de los subdominios y la prueba de página 2 no tiene idea de a qué valor configuré $ _SESSION ['test']. Sin embargo, parece que hay mucha certeza en torno a la red de que uno de los métodos anteriores debería funcionar. ¿Alguna idea de lo que podría estar pasando, sobre todo porque estoy usando páginas mínimas para probar el mecanismo (sin efectos secundarios que puedo ver)? Por cierto, estoy en un servidor compartido, si es pertinente aquí.
Gracias por su opinión. Franco.
Editar. Lo arreglé. El problema fue causado por Suhosin. Ver respuesta detallada al pie de esta página.
"Una pesadilla de 48 horas para rastrear, 4,8 segundos para arreglar" - super. Te entiendo :) – qasanov