PHP - "převzetí parametru"
Dobrý den
Mám v souboru index.php mimo jiné tento segment:
<? if ($stranka == "maxim") {include "./maxim.php";}
elseif ($stranka == "kontakt") {include "./kontakt.php";}
elseif ($stranka == "download") {include "./download.php";}
else {include "./maxim.php";}?>
Při zobrazení mi IE hlásí :
Notice: Undefined variable: stranka in c:\www\index.php on line 26
Notice: Undefined variable: stranka in c:\www\index.php on line 27 ...
Co ještě musí index.php obsahovat, aby správně naplnil hodnotu proměnné stranka například z odkazu :
href="index.php?stranka=kontakt"
Místo $stranka k proměnný přistupuj pomocí $_GET['stranka']. Takže to bude takto:
Teď to hlásí zase:
Notice: Undefined index: stranka in c:\www\index.php on line 26 ...
Zkrátka ať proměnná, nebo teďkonc index nejsou definovaný.
Stačí, když před tím if provedu třeba
<?php $stranka="kontakt" ?>
a proběhne to bez chyby. Akorát že samozřejmě pak nebere ohled na to volání.
mozno by bolo vhodne spravit dalsiu podmienku a to na to, aby zistilo, ci vobec nejaka $_GET['stranka'] je setnuta a az potom by to vkladalo include-om.
mozno je to trochu zvratene riesenie, davat jedno if cez druhe, nenapada ma lepsie riesenie...snad niekto iny
To by mě sice zbavilo toho chybovýho hlášení, ale to správný include by stejně neproběhlo. Zkrátka nevím CO DĚLÁM ŠPATNĚ nebo NA CO JSEM ZAPOMNĚL, že se mi ta variable stranka nesetne
dobre no, mierna modifikacia a je to:
Výborně, díky moc! Takhle to fachá.
Jen jsem se chtěl zeptat: To teprve ta funkce IsSet tu variable nadefinuje a hned i naplní správnou hodnotou ? To se tedy takhle musí "plnit" všechny podobným způsobem předávané proměnné ?
ne, isset() akorat zkontroluje, jestli dana promenna existuje
btw hlaseni poznamek bych vypnul
budto pres konfiguraci apache, jestli k tomu mas pristup nebo tohle dat na zacatek scriptu
ini_set("error_reporting", "E_ALL & ~E_NOTICE");
Automatické nastavovanie premenných podľa parametrov z požiadavky môže byť zapnuté alebo vypnuté podľa nastavenia PHP (register_globals). Keď je zapnuté, je to bezpečnostné riziko. K parametrom z URL sa dostaneš vždy cez $_GET.
Môžeš použiť:
alebo skrátený zápis:
(netestované, ale snáď tam nie sú preklepy)
Koukám, že tady už je vlastně odpověď na mou doplňující otázku. Díky, trošku si to rozpitvám a pak se kdyžtak ještě zeptám.