Portál AbcLinuxu, 10. května 2025 02:45
soubor: form.html [HTML] [HEAD] [/HEAD] [BODY] [form name="mujform" method="GET" action="show.php"] [input type="text" name="testik"] [input type="submit" value="odeslat"] [/form] [/BODY] [/HTML] soubor: show.php [?php echo "[HTML][HEAD][TITLE]pokus[/TITLE][/HEAD]; echo "[BODY]; echo "odeslano: "$testik; echo "[/BODY][/HTML]"; ?]poznamka: ve vypisu kodu jsem pouzil misto <> hranate zavorky [] jinak to neslo odeslat. script show.php by mel vypsat obsah promenne, ale nevypise, zkusil jsem i "POST" a nic v error_log je tato chyba: [client 192.168.1.93] PHP Notice: Undefined variable: testik in /var/www/html/show.php on line 4, referer: http://petr.home/form.php totez jsem zkusil na jinem serveru a funguje to. A jeste jeden jev, kterz mi nevadi, ale je to divne (tedy alespon pro mne). Php funguje, ale jen kdyz to je samostany soubor .php, pokud vlozim php do html, tak nefunguje. Pokud nekdo mate tuseni, kde muze byt zrada, budu vdecny za kazdou radu. dekuji Tomas
echo "odeslano: "$HTTP_GET_VARS['testik'];priame volanie premennych v php funguje iba ak je direktiva register_globals nastavena na ON, resp pri pouziti:
if (!empty($HTTP_POST_VARS)) extract($HTTP_POST_VARS, EXTR_OVERWRITE);resp,:
if (!empty($HTTP_GET_VARS)) extract($HTTP_GET_VARS, EXTR_OVERWRITE);hore uvedene neodporucam pouzivat, ak to chces mat aspon trochu bezpecne (hockto ti moze z vonku "podstrcit" akukolvek premennu)... http://sk2.php.net/register_globals
service httpd restart
$HTTP_GET_VARS
a $HTTP_POST_VARS
zrušena a používají se pouze $_GET
a $_POST
(nebo $_REQUEST
).
P.S. Neodpustím si jazykovou poznámku: to slovo register neznamená, že se jedná o nějaké "registry"; je to prostě sloveso registrovat
Aha, problém byl v tom, že na rozdíl od většiny ostatních svůj konfigurační soubor vytvářím úpravou php.ini-recommended
, kde je přednastaveno (kvůli výkonu) 'register_long_arrays = Off
'. Protože jsem o existenci této direktivy nevěděl, předpokládal jsem, že ty proměnné už byly zrušeny.
To, že pole nevidí tazatel, může tedy být buď tímto nastavením, nebo tím, že příslušná pole nejsou "superglobální", takže nejsou automaticky vidět uvnitř funkcí.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.