Portál AbcLinuxu, 11. května 2025 10:23
V souboru index.html je formulář, co metodou GET odešle proměnnou jmeno do souboru test2.php. Mozilla dokonce naskočí s adresou http:// ... test2.php?jmeno=Filip, ale ve skriptu se jeví jako prázdná. PHP se teprve učím a nelze vyloučit chybu ve skriptech, ale spíš to bude nějakým vyšším bezpečnostním nastavením v konfiguraci PHP. Jiné skripty echo "ahoj světe"; samozřejmě fungují. Předem díky za rady.
Přesný postup
Obsah souboru index.html:
<form action="test2.php" method=get>
Jméno: <input type=text name="jmeno">
<input type=submit value="Odešli">
</form>
Má konfigurace:
Mandrake 9.1 bez těchto serverů, s jejich dodatečnou vlastní kompilací.
Apache 2.0.47, konfiguraván: ./configure --enable-so --prefix=/usr/local/apache2
PHP 4.3.3, konfigurováno: ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pgsql --prefix=/usr/local/php
Dodatečné nastavení
v souboru: /usr/local/apache2/conf/httpd.conf
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
Potom ještě změny v zobrazování češtiny a root adresář dokumetnů, ale to se v PHP neprojeví.
v souboru: /usr/local/lib/php.ini
register_globals = On
Funguje to, díky. Soubor php.ini jsem dal do /usr/local/php/lib/php.ini. Z toho mám ale nejasno v dalších dvou věcech.
1) Vlastní adresáře v /usr/local jsem volil, aby se při "promíchání" nemohlo stát, že dva software se budou hádat o jeden soubor. Nemůže se to stát? Koukal jsem, že například f-prot instalovaný rpm balíčkem udělal to stejné, pouze si v /usr/local/bin vytvořil ln.
2) Můj jednoduchý postup funguje pouze s Register_globals On. Ještě vyzkouším $_GET["$jmeno_pole"], pak bych to vypnul. V čem je ale nebezpečí? Je to v tom, že mi někdo pomocí parametrů v adrese nacpe do skriptu vlastní hodnoty a je lepší používat metodu "post"? Jestli je toho víc, nebudu se zlobit za odpověď "tohle ještě nepochopíš". Předem dík.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.