8
votes

Comment obtenir le domaine d'un cookie spécifique?

Il existe un site Web www.example.com
Tous les cookies sont définis sur le www sous-domaine.
Maintenant, il y a un nouveau sous-domaine et je veux que les cookies soient vus pour tous les sous-domaines.

L'objectif est de réécrire le www.example.com cookies pour tous les anciens visiteurs d'être .example.com ou pour écrire de nouveaux pour . exemple.com si défini pour www.

Pour cela, je veux obtenir le domaine des cookies existants.
Est-il possible? Existe-t-il une fonction PHP à cette fin?


3 Réponses :


1
votes

Si je vous comprends correctement, vous souhaitez modifier le domaine des cookies existant actuellement sur les clients?

Ce n'est pas possible (*).

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?

(*) Il pourrait être possible avec JavaScript sur le côté du client.


0 commentaires

5
votes

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");


2 commentaires

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.



1
votes

Vous pouvez utiliser la fonction php session_get_cookie_params (). J'espère que cela fera le travail. XXX


2 commentaires

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