Il existe un site Web L'objectif est de réécrire le Pour cela, je veux obtenir le domaine des cookies existants. www.example.com code>
Tous les cookies sont définis sur le www code> sous-domaine.
Maintenant, il y a un nouveau sous-domaine et je veux que les cookies soient vus pour tous les sous-domaines. p>
www.example.com code> cookies pour tous les anciens visiteurs d'être
.example.com code> ou pour écrire de nouveaux pour
. exemple.com code> si défini pour
www. code> p>
Est-il possible? Existe-t-il une fonction PHP à cette fin? P>
3 Réponses :
Si je vous comprends correctement, vous souhaitez modifier le domaine des cookies existant actuellement sur les clients? P>
Ce n'est pas possible (*). P>
Lorsque vous obtenez un côté du serveur de cookie, est-il possible de voir s'il était défini pour le domaine www, gardant à l'esprit que le cookie a passé la forme que le client n'a aucune information de domaine? P>
(*) Il pourrait être possible avec JavaScript sur le côté du client. P>
Je ne pense pas que le domaine soit disponible lors de la lecture de cookies, ceci est limité par le navigateur. Une solution serait de supprimer l'ancien cookie et de le modifier au nouveau domaine.
E.g. P>
$value = $_COOKIE['TestCookie']; setcookie("TestCookie", "", time() - 3600, "www.example.com"); setcookie("TestCookie", $value, time + (60 * 60 * 24 * 30), ".example.com");
J'ai eu cette idée, mais cette façon même après que tous les cookies ont changé, le processus sera répété pour toujours. Je le fais sur le côté serveur. Et une autre chose: Google Chrome connaît le domaine de la cookie (dans l'élément d'inspection)
Vous pouvez ajouter un autre cookie pour vous faire savoir que vous avez déjà fait la conversion.
Vous pouvez utiliser la fonction php session_get_cookie_params (). J'espère que cela fera le travail.
Soyez soigné: PHP.net/Manual/ru /function.session-get-Get-Cookie-Params.php#119 445 . J'ai fait du cookie avec httponly true, et cette fonction a montré qu'il est faux
session_get_cookie_param () obtient uniquement les paramètres définis dans php.ini pour le cookie de session (utilisé avec session_start (), $ _session, etc.), pas les informations sur le cookie réel
Vous pourriez trouver
$ cookie-> SetDomain ($ domaine) code>
utile, comme trouvé dans Cette bibliothèque autonome < / a>. Bien que vous ne puissiez pas accéder à la propriété code> code> de cookies qui ont déjà été envoyées (et définies sur le client), vous pouvez simplement définir de nouveaux. Cela fonctionnera bien.