Conserver les sessions dans les sous-domaines en PHP

Standard

Par défaut, PHP utilise le cookie PHPSESSID pour propager les sessions à travers les différentes pages d’un site. Par défaut, PHP utilise le domaine et le sous-domaine courant pour déclarer ce cookie.

Par exemple, si je me connecte sur www.monsupersite.com, mon cookie PHPSESSID sera déclaré pour la localisation www.monsupersite.com. Les données contenues dans la session ne pourront pas voyager avec le visiteur pour un autre domaine ou sous-domaine. Ceci veut dire que mes données $_SESSION ne seront malheureusement pas accessibles sur forum.monsupersite.com par exemple !

Pour rendre les données de la session accessibles sur tous les sous-domaines de votre domaine principal, il va falloir rajouter une ligne au tout début de tous vos fichiers où une session est susceptible d’être créée. Le plus sage étant encore de l’inclure sur toutes vos pages, immédiatement après l’ouverture de la balise PHP. Il suffit de rajouter ceci :

Ceci aura pour effet de supprimer le sous-domaine. Par exemple forum.monsupersite.com devient .monsupersite.com. Ainsi, toutes les données de la session seront accessibles sur tous les sous-domaines de monsupersite.com !

Sounds great? Give me a follow on Twitter or learn more about me.