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
- autorizovanou žiadosťou požiadať o zapnutie alebo nastavenie staršej verzie PHP 5.3
- 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 |