Jak vědět více o návštěvnících pomocí PHP
Určitě jste někdy potřebovali zjistit IP adresu nebo doménovou adresu návštěvníka vašich stránek, jméno právě prováděného skriptu či jména stránek, které odkazují na váš server. Další údaje o návštěvníkovi (typ prohlížeče a operačního systému) se mohou také hodit. Jak se dají tyto a mnohé další informace snadno získat?
Proměnné prostředí (Environment variables) jsou předdefinované proměnné, které máte k dispozici v každém skriptu. PHP umožňuje využít celou řadu proměnných prostředí. Jejich počet je závislý na typu a verzi webserveru a na verzi samotného PHP. Seznam všech těchto proměnných a jejich hodnot lze získat použitím funkce PHPInfo().
Přehled
V následující tabulce je uvedena většina proměnných prostředí. Jak bylo napsáno výše, jejich počet závisí na mnoha faktorech, proto jsou některé méně důležité proměnné vynechány. Ty nejdůležitější, které budete používat nejčastěji, jsou zvýrazněny tučným písmem. Všechny proměnné začínající na „HTTP“ jsou vlastně HTTP hlavičky (např. $HTTP_ACCEPT je hlavička Accept).
|
* máme-li odkaz http://www.interval.cz/pages/variables.php/extra?XXXX, extra informací se rozumí „/extra“
Asociativní pole $HTTP_*_VARS jsou inicializována pouze, pokud je zapnuta v php.ini (php3.ini) konfigurační direktiva „track_vars“. Od verze PHP 4.0.3 je tato direktiva zapnuta vždy a nejde vypnout.
Standardně je zapnuta i konfigurační direktiva „register_globals“, která umožňuje využívat jednotlivé proměnné z asociativních polí $HTTP_*_VARS i odděleně (např. HTTP_SERVER_VARS[„SERVER_PORT“] i $SERVER_PORT).
Některé proměnné se chovají na různých operačních systémech různě, což ilustruje i následující tabulka.
|
Další rozdíl je v tom, že většina nejdůležitějších proměnných ($SCRIPT_NAME, $SERVER_PORT, …) je v Linuxu v poli $HTTP_SERVER_VARS, zatímco ve Windows v poli $HTTP_ENV_VARS.
Funkce pro práci s proměnnými prostředí
string GetEnv(string varname)
Funkce GetEnv() vrací hodnotu proměnné prostředí varname. Funkci využijete hlavně v třídách při objektovém programování nebo ve vlastních funkcích.
|
nikoli
|
void PutEnv(string settings)
Funkce PutEnv() umožňuje nastavení proměnné prostředí. Funkci použijete hlavně při volání externích programů, které potřebují nastavit nebo změnit proměnné prostředí.
|
Chod této funkce ovlivňují i dvě konfigurační direktivy, které však mají význam pouze, pokud je zapnuto „SAFE-MODE“ (bezpečný režim). První konf. direktiva „safe_mode_allowed_env_vars“ určuje předponu proměnných prostředí (např. „PHP_“), které půjdou nastavit či změnit. Druhá direktiva „safe_mode_protected_env_vars“ obsahuje proměnné prostředí, které nejdou v žádném případě změnit.
Výpis všech proměnných prostředí
Pro získání všech proměnných prostředí a jejich hodnot můžete použít funkci PHPInfo(). Můžete však využít i toho, že všechny proměnné prostředí jsou vlastně globální proměnné obsažené v poli $GLOBALS.
|
Doménová adresa počítače, ze kterého přišel požadavek
Doménová adresa se může hodit pro různé statistiky. V proměnné $REMOTE_HOST je však doménová adresa obsažena jen velmi zřídka. Proto použijte funkci GetHostByADDR(), která převádí IP adresu na adresu doménovou. Musíte však počítat s tím, že pokud $REMOTE_ADDR obsahuje IP proxy serveru, obsahuje (ne vždy) IP adresu počítače, ze kterého přišel požadavek, proměnná $HTTP_X_FORWARDED_FOR. Ta však může obsahovat několik adres oddělených čárkou, proto použijeme funkci Explode().
|
Takové jsou tedy proměnné prostředí v PHP. Jak sami z několika příkladů vidíte, práce s nimi je vcelku jednoduchá.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Jak nainstalovat šablonu ve WordPressu
23. července 2024 -
Vlastní web pomocí AI už může vytvořit opravdu každý
8. srpna 2024 -
Vaše pošta může být špatně nastavena – svěřte ji profesionálům
13. července 2023
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024