Nefunguje odovzdávanie premenných v PHP

Ak Vám v php aplikácii nefunguje predávanie premených z formulára, je na vine defaultne vypnutá direktíva register_globals. Jej zapnutie spôsobuje to, že sa z dát prijatých zo servera alebo skriptu (metódou GET, POST, SESSION...) automaticky vytvorí premenná. Direktíva je od verzie 4.2 defaultne v konfigurácii vypnutá (a od verzie 5.4 v php celkom chýba!).
 
Problém sa prejavuje napríklad takto: do adresného riadka napíšete
 
http://www.mojadomena.cz/index.php?prvni=10&druha=20
 
Lenže po odoslaní je obsah premenných $prvni a $druha prázdny. Premenná sa nepreniesla.
 
Existujú 2 možnosti nápravy
  1. autorizovanou žiadosťou požiadať o zapnutie alebo nastavenie staršej verzie PHP 5.3
  2. pridať na začiatok skriptu nasledujúci kód
atď. podľa toho, akou metódou sú premenné odovzdávané.
 
Dôrazne odporúčame využiť druhú možnosť - už z hľadiska neskoršej kompatibility a hlavne máte premenné pod kontrolou.
 
Táto situácia môže nastať, i keď používate prepis adresy pomocou pravidiel rewrite, ale premenná sa neodovzdá. Neznamená to, že je rewrite nefunkčný, ale len vypnutý register_globals.
 
Ďalšie informácie môžete nájsť napríklad v dokumentácii php na tejto adrese
 
Zoznam najčastejšie používaných premenných
 
Premenná Význam
$_SERVER údaje o serveri i užívateľovi
$_POST  premenné poskytované skriptu cez HTTP POST (najčastejšie pri odoslaní formulára)
$_GET premenné poskytované skriptu cez HTTP GET (t.j. cez adresný riadok)
$_COOKIE premenné poskytované skriptu cez HTTP cookies
$_FILES premenné poskytované skriptu cez HTTP POST upload súborov
$_SESSION premenné, ktoré sú momentálne registrované v aktuálnej relácii skriptu