PHP / Apache comment définir session.cookie_domain depuis l’extérieur de php.ini

Je dois limiter les cookies à mon sous-domaine www, cela fonctionne en ajoutant la ligne session.cookie_domain = www.example.com dans le fichier php.ini. Cependant, j’ai un certain nombre d’hôtes virtuels sur mon serveur, donc j’ai besoin que ce domaine soit différent pour chacun. Après un peu de recherche sur le Web, j’ai essayé d’utiliser:

'SetEnv session.cookie_domain www.example.com' - in my httpd.conf 'php_flag session.cookie_domain www.example.com' in .htaccess 

Cependant, les deux semblent empêcher les cookies de fonctionner tous ensemble!

Toute aide très appréciée!

Stu

Le moyen le plus simple d’y parvenir est d’utiliser session_set_cookie_params() au lieu de le définir via .htaccess (la méthode .htaccess ne fonctionne que si PHP est utilisé comme module). Vous pouvez l’utiliser de la manière suivante:

 session_set_cookie_params(0, '/', 'www.example.com'); session_start(); 

Le problème est que php_flag est en fait uniquement destiné aux valeurs booléennes. Ainsi, lorsque vous utilisez la commande php_flag , vous définissez en fait cookie_domain sur 0 , raison pour laquelle elle cesse de fonctionner.

Pour les valeurs de texte, vous devez utiliser php_value dans la configuration .htaccess ou apache. Il est également recommandé de citer la valeur:

 php_value session.cookie_domain ".domain.com" 

voir: http://www.php.net/manual/en/configuration.changes.php

Une autre option consiste à utiliser ini_set :

ini_set("session.cookie_domain", "www.example.com");

Dans mon cas, celui-ci a fonctionné pour moi:

 setcookie("name", $Value4Name, time()+$3600 , "/", ".domain.com"); 

Mais c’est à vous d’enregistrer un cookie pour la racine du domaine.

acclamations PC

Ce code fonctionne à 100%, définissez ce code dans le fichier .htaccess

 php_value session.cookie_path "/" php_value session.cookie_domain ".localhost" 

Ou code pour fichier JavaScript

 function my_cookie($name, $value, $expires = 0) { return setcookie($name, $value, $expires, '/', 'example.com', ...); }