Autor Zpráva
Anonymní
Profil *
Mám takový problém. Učím se php, ale stále nemohu přijít na to, co znamená část za url, například www.neco.cz/pokus.php?xxx=yyy. Moc děkuji.

p.s.: promiňte za ten nadpis, ale nic lepšího jsem opravdu nevymyslel...
halogan
Profil
To je predavani parametru pres URI.
V pokus.php se k temto datum dostanete napr. pomoci $_GET['xxx'] - tato promenna by mela obsahovat string "yyy". Takto nekdo dela vkladani obsahu do stranky, ze testuje $_GET['inc'] (inc je jen priklad) a pak vkladaji soubor pomoci include/require.
Yuhů
Profil
Ta část adresy za otazníkem je možná v začátcích pro pochopení PHP to nejdůležitější.

Říká se tomu proměnné, někdy taky parametry. Zápisem ?xxx=yyy říkáš, že proměnná jménem xxx v sobě má hodnotu "yyy". K té proměnné potom lze v PHP programu přistoupit a zpracovat ji.

Pokud je potřeba předat proměnných více, oddělují se znakem &. Například
?xxx=yyy&aaa=2
potom je v proměnné aaa hodnota 2.

Jak už správně napsal halogan, dá se v PHP k takové proměnné přistoupit pomocí zápisu $_get["xxx"].

V PHP3 (a nebo pokud je na serveru povoleno register_globals on) to bylo ještě jednodušší a k té proměnné se dalo přistoupit pouhým zápisem $xxx. Taže třeba program v souboru neco.php:

<?
echo "V proměnné xxx je hodnota" . $xxx
?>

vypíše

V proměnné xxx je hodnota yyy
halogan
Profil
Yuhů: Promin, ja vim, ze mas rad reg. globals on (ja je mam off), ale zacatecnik by si nikdy nemel zvykat na on, pak se to tezko oducuje, proto anonymovi doporucuji, aby na promenne pristupoval pres superglobalni pole $_GET (zalezi na velikosti pismen).
DoubleThink
Profil *
> nikdy nemel zvykat na on

Ale, já bych to zase tak nehrotil...
Na většině serverů je stejně register_globals=on a kdyby ne, tak je to jenom otázka přepsání několika vstupních proměnných.

Naopak bych řekl, že superglobální zápis je dost náchylný na překlepy.
Yuhů
Profil
halogane, fakt, nehroť to. Mám trochu zkušeností s tím, jak věci začátečníkům podávat.

Vím také na svém příkladu, že jako začátečník jsem psal $proměnné, dneska píšu $HTTP_GET_VARS("proměnné") a to přeučení mi fakt nedalo vůbec žádnou práci.
Anonymní
Profil *
Ano, je to jen o zvyku...
llook
Profil
Je fakt, že důležitější je na začátku pochopit jak PHP pracuje, pak se teprve starat o bezpečnost skriptů, ošetření vstupu apod. PHP4 hostingy mají snad všude register_globals=on, zajímalo by mě, jak to budou mít nastavený u PHP5.

2Yuhů: Možná si budeš znova převykat. $HTTP_GET_VARS je "still available, but deprecated" a hlavně $_GET je kratší a přehlednější.
halogan
Profil
"tak je to jenom otázka přepsání několika vstupních proměnných. " - to mozna u scriptu<5kB, pak uz to je horsi a kdo by se v tom hrabal? $_GET a $_POST nic neni a navic to zprehledni prohlizeni kodu.
Toto téma je uzamčeno. Odpověď nelze zaslat.