Mes impressions sur le web, les standards et autres…


Un cookie récalcitrant

Je viens de passer une demi-heure sur un problème à la con. La réponse servira peut-être à d’autres personnes :

L’attribut domain d’un cookie ne peut cibler qu’un sous-domaine (le nom complet doit comporter au moins deux points, par exemple www.example.com). Pour que le cookie soit actif sur tous les sous-domaines, n’indiquez pas de sous-domaine (mais laissez le point en tête) : .example.com
Problème : example.com ne fait pas partie des heureux élus.

Compte tenu de l’obligation d’indiquer un nom de domaine comportant au moins deux points, toute tentative d’envoyer un cookie sur la racine d’un domaine (example.com) en précisant le domaine dans la fonction setcookie() sera vouée à l’échec. La seule solution est de ne pas préciser le domaine de validité du cookie (= cookie valable uniquement sur example.com dans notre cas).

D’après la spécification, cette limitation est là pour éviter des émissions de cookie dans des domaines de validité tels que .com ou encore .co.uk.
je lis d’ailleurs à l’instant que le nombre de caractères points minimum est porté à trois si l’extension du domaine n’est pas dans la liste des extensions "spéciales" : "COM", "EDU", "NET", "ORG", "GOV", "MIL", et "INT".