Portál AbcLinuxu, 12. května 2025 08:16

Dotaz: PHP nedostane proměnné z URL

9.1.2003 15:56 Vasek | skóre: 6
PHP nedostane proměnné z URL
Přečteno: 892×
Odpovědět | Admin
Zdravím, Chtěl bych se zeptat, zda někdo nevíte, proč mi PHP nenančte (nepřevezme) proměnné z URL.

mám například skript pokus.php:

----

print ("action=$action")

----

při url např. http://localhost/pokus.php?action=10

nenapíše "action=10" ale pouze "action="

z toho usuzuji, že Apache proměnné uvedené v URL za otazníkem nějakým způsobem nepředá PHP. Co jsem zkoušel, tak to nefunguje ani metodou POST. Jinak PHP skripty normálně fungují, včetně komunikace s mysql. Ono předání proměnných nefunguje ani na jinde normálně funkčních stránkách, které si na svůj stroj zkopíruji. Ale zajímavé je, že phpmyadmin mi běží v pohodě. Mám Slackware, Apache+PHP+Mysql (bez mod_ssl) jsem si kompiloval sám, takže chyba bude nejspíš na mojí straně. Že by chybělo něco v httpd.conf??? Server se nespouští jako standalone, ale pomocí démona tcpserver (obdoba inetd). To jsem v httpd.conf upravil (ServerType inetd). Na konec souboru jsem připsal řádek

AddType application/x-httpd-php .php .php3 .php4 .phtml

A pak jsem akorát ještě změnil nastavení DocumentRoot. Nechybí ještě něco nastavit?

Apache mám verze 1.3.27 a PHP 4.2.3.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.1.2003 19:36 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše PHP nedostane proměnné z URL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proměnné z url asi nedostane protože asi máte nastavené špatně php.
php.ini

register_globals boolean

Tells whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) variables as global variables. For example; if register_globals = on, the url http://www.example.com/test.php?id=3 will produce $id. Or, $DOCUMENT_ROOT from $_SERVER['DOCUMENT_ROOT']. You may want to turn this off if you don't want to clutter your scripts' global scope with user data. As of PHP 4.2.0, this directive defaults to off. It's preferred to go through PHP Predefined Variables instead, such as the superglobals: $_ENV, $_GET, $_POST, $_COOKIE, and $_SERVER. Please read the security chapter on Using register_globals for related information.

Please note that register_globals cannot be set at runtime (ini_set()). Although, you can use .htaccess if your host allows it as described above. An example .htaccess entry: php_flag register_globals on.

Poznámka: register_globals is affected by the variables_order directive.

Viz: http://php.cz/manual/cs/configuration.directives.php#ini.register-globals
9.1.2003 21:40 Vasek | skóre: 6
Rozbalit Rozbalit vše PHP nedostane proměnné z URL
jo, bylo to tim. register_globals musí být On Dík moc.
3.4.2004 13:17 JanVar
Rozbalit Rozbalit vše Re: PHP nedostane proměnné z URL
ale kolega Soban vam prece napsal,, ze mate spatne promenne.
Ne aby jste si nastavil register_globals na "ON".
3.4.2004 13:53 ...... | skóre: 41 | blog: ...
Rozbalit Rozbalit vše Re: PHP nedostane proměnné z URL
no ale kdo chce kam...., ne? ;-)
3.4.2004 17:35 telnet
Rozbalit Rozbalit vše Re: PHP nedostane proměnné z URL
Odpovědět | | Sbalit | Link | Blokovat | Admin
phpmyadmin psaly o trochu mensi prasata nez ty, takze to register_globals nepotrebuje. vsichni rozumni lidi pristupuji k promennym z requestu pres pole $_GET a $_POST. daji se z tech poli i vyexportovat do jmennyho prostoru, kdyz nekdo nechce opravovat prasacky skript pocitajici s register_globals, ale jinak nedoporucuji.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.