Duplicate possible:
HTTP_Host vs. SERVER_NAME
Salut,
Je veux obtenir le nom de domaine pour l'emplacement du script. Comment cela peut-il être fait avec PHP? Je vois que $_SERVER['HTTP_Host']
ainsi que $_SERVER['SERVER_NAME']
contiennent cette information. Cette variable fonctionnera-t-elle toujours et devrais-je utiliser l'une sur l'autre?
Je vous remercie.
Une question similaire a déjà été posée dans stackoverflow.
Voir ici: PHP $ _SERVER ['HTTP_Host'] vs $ _SERVER ['SERVER_NAME'], ai-je bien compris les pages de manuel?
Voir également cet article: http://shiflett.org/blog/2006/mar/server-name-versus-http-Host
Recommandé avec HTTP_Host et de ne recourir à SERVER_NAME que si HTTP_Host n'est pas défini. Il a déclaré que SERVER_NAME pouvait ne pas être fiable sur le serveur pour diverses raisons, notamment:
- pas de support DNS
- mal configuré
- derrière le logiciel d'équilibrage de charge
Pour répondre à votre question, celles-ci devraient fonctionner aussi longtemps que:
Mais, si je me souviens bien, ces valeurs peuvent être falsifiées dans une certaine mesure, il est donc préférable de ne pas compter sur elles.
Ma préférence personnelle est de définir le nom de domaine en tant que variable d'environnement dans l'hôte virtuel Apache2:
# Virtual Host
setEnv DOMAIN_NAME example.com
Et lisez-le en PHP :
// PHP
echo getenv(DOMAIN_NAME);
Ceci, cependant, n'est pas applicable dans toutes les circonstances.