Ak Vám v php aplikácii nefunguje prenos premenných z formulára, je na vine defaultne vypnutá direktiva 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á. Direktiva je od php 4.2 defaultne v konfigurácii php vypnutá (a od verzie php 6 sa neuvažuje o jej zaradenie vôbec!)
Problém sa prejavuje napríklad takto: do adresného riadku napíšete:
http://www.mojadomena.sk/index.php?prva=10&druha=20
Lenže po odoslaní je obsah premenných „prva“ a „druha“ prázdny. Premenná sa nepreniesla.
Existujú 2 možnosti nápravy:
- autorizovaná žiadosť o zapnutie
- pridať na začiatok skriptu nasledujúci kód:
$prva = $_GET['prva'];
$druha = $_GET['druha'];
atď, podľa toho akou metódou sú premenné prenášané.
Dôrazne odporúčame využiť druhú možnosť - už z hľadiska neskoršej kompatibility a hlavne máte ukazovatele pod kontrolou.
Táto situácia môže nastať aj keď používate prepis adresy pomocou pravidiel rewrite, ale premenná sa neodovzdá. Neznamená to, že je rewrite nefunkčný, ale len vypnuté register_globals.