Une certaine application, non écrite par moi, et non en PHP, crée un cookie pour le domaine "www.domain.com".
J'essaie de remplacer ce cookie. Donc, dans PHP, j'ai fait:
setcookie('mycookie','mydata',time() + 2*7*24*60*60,'/','www.domain.com', false);
Cependant, le cookie résultant est créé pour le domaine: ".www.domain.com", note le point "." en avance sur le domaine.
Donc, cela ne le remplace pas, cela crée un autre cookie. Que puis-je faire?
Le problème est également adressé ici: https://www.php.net/manual/fr/function.setcookie.php
Voir le commentaire par JAH :
Si vous souhaitez limiter le cookie à un seul hôte, fournissez le paramètre de domaine comme chaîne vide.
Vous pouvez aussi essayer .domain.com
comme le domaine. Le point de fuite permettra à un cookie pour tous les sous-domaines pour domain.com
et pourrait écraser le www.
- Cookie, mais je vais d'abord aller avec la solution ci-dessus.
Si vous spécifiez un domaine, vous devez suivre RFC 2109 et préfixer le domaine avec un point; Sinon, le client le fera. Mais si vous ne spécifiez pas de domaine du tout, le client prendra le domaine de la demande.
N'est-ce pas comme un bug? Et si je veux que mes cookies soit juste à www.example.com
et pas à something.www.example.com
? E.g pour la performance. Je devrais être capable de spécifier le domaine de la cookie et non sur toutes les sous-domaines [sous] [sous]. Sans parler de la quantité de bugs qu'elle provoque, par exemple, définissez Cookie par PHP et en essayant de le supprimer par JavaScript (qui n'ajoute pas le point stupide).