He copiado un sitio existente y que se ejecuta correctamente en un nuevo servidor de desarrollo.No se puede cambiar el nombre de la cookie de sesión php
El inicio de sesión en el nuevo servidor se ha roto, y yo lo rastreó al hecho de que a pesar de la cookie de sesión se cambia el nombre ...
ini_set('session.name', 'DOMAIN1');
... el navegador sigue almacenando la cookie como sesssion PHPSESSID.
Cuando elimino la línea anterior de la aplicación en el nuevo servidor, el inicio de sesión vuelve a funcionar. Pero esta no es una buena solución, porque otra aplicación también usa PHPSESSID con este nombre.
Y preferiría encontrar el motivo del comportamiento extraño en lugar de utilizar una solución alternativa. Si no lo arreglo, podría morderme en otro lugar.
Quizás esto ya es suficiente información para que alguien me dé una pista. Si no, ¿qué información sería útil?
Esta máquina era un servidor ubuntu 8.04 muy básico y desnudo, y instalé apache2, mysql y php5 con aptitude. También actualicé lokales y la zona horaria.
Solución:
que reemplazó a la línea anterior con el código de de la respuesta aceptada ...
if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1'))
{
die('Unable to set sesssion scope');
}
... y el inicio de sesión ahora trabaja en el nuevo servidor.
No, se supone que ini_set() no debe modificar el archivo INI: ver http://php.net/ini_set De lo contrario, sería una gran violación de seguridad potencial. – mojuba
Sí, lo siento, tiempo de ejecución solamente :) – RobertPitt
Gracias, después de horas de búsqueda, finalmente funciona. Reemplacé el código heredado con las 4 líneas de su ejemplo y eso lo solucionó. – mit