J'ai copié un site existant et en cours d'exécution vers un nouveau serveur de développement.Impossible de modifier le nom du cookie de session php.
La connexion sur le nouveau serveur est maintenant brisé, et je a dépisté au fait que même si le cookie de session est renommé ...
ini_set('session.name', 'DOMAIN1');
... le navigateur conserve le stockage du cookie sesssion comme PHPSESSID.
Lorsque je supprime la ligne ci-dessus de l'application sur le nouveau serveur, la connexion fonctionne à nouveau. Mais ce n'est pas une bonne solution, car une autre application utilise aussi PHPSESSID sous ce nom.
Et je préférerais trouver la raison du comportement étrange au lieu d'utiliser une solution de contournement. Si je ne le répare pas, ça pourrait me mordre ailleurs.
Peut-être que c'est déjà suffisamment d'informations pour que quelqu'un me donne un indice. Si non, quelle information serait utile?
Cette machine était un serveur ubuntu 8.04 très nu et basique, et j'ai installé apache2, mysql et php5 avec aptitude. J'ai également mis à jour lokales et le fuseau horaire.
Solution:
Je remplace la ligne ci-dessus avec ce code de de la réponse acceptée ...
if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1'))
{
die('Unable to set sesssion scope');
}
... et la connexion fonctionne désormais sur le nouveau serveur.
Non, ini_set() n'est pas censé modifier le fichier INI: voir http://php.net/ini_set Sinon, il s'agirait d'une importante faille de sécurité potentielle. – mojuba
Yea désolé, exécution seulement :) – RobertPitt
Merci, après des heures de recherche cela fonctionne enfin. J'ai remplacé le code existant par les 4 lignes de votre exemple et cela l'a corrigé! – mit