Mathe-Team: _SERVER / $_ENV

Hallo,
wir haben festgestellt, dass zum Teil gleiche Namen (z.B. DOCUMENT_ROOT) sowohl als $_SERVER.... als auch als $_ENV..... unter den PHP-Servervariablen aufgeführt werden. Manchmal sind die Werte identisch, manchmal unterscheiden sie sich. Welchen kann man in PHP-Scripts vertrauen?

  1. Tach!

    wir haben festgestellt, dass zum Teil gleiche Namen (z.B. DOCUMENT_ROOT) sowohl als $_SERVER.... als auch als $_ENV..... unter den PHP-Servervariablen aufgeführt werden.

    Ob das der Fall ist hängt davon ab, wie PHP im Webserver eingebunden ist. Laut Handbuch zur Konfigurationsdirektive variables_order ist es bei (F)CGI so, dass die Einträge des Environment auch in $_SERVER zu finden sind, und damit zweimal auftauchen. Das heißt bei PHP als Apache-Modul sollte das nicht der Fall sein.

    Manchmal sind die Werte identisch, manchmal unterscheiden sie sich. Welchen kann man in PHP-Scripts vertrauen?

    Generell sollte das, was als Environment-Variable gesetzt ist, auch über $_ENV abgefragt werden. Was der Webserver selbst bereitstellt (also die Daten des Requests), sollte $_SERVER entnommen werden.

    dedlfix.