Autor | Zpráva | ||
---|---|---|---|
pavuk Profil |
#1 · Zasláno: 14. 9. 2010, 17:57:34 · Upravil/a: pavuk
Zdravím, snažím se pochopit jak php funguje, a teď jsem u vkládání obsahu stránky pěkně polopatě na základě "index.php?str=něco...". Vzal jsem celý skript a vložil k sobě, upravil, všechno funguje perfektně, jenom stránka "uvod.php" mi posune vkládaný (správně zobrazený) obsah a vypíše "Notice: Undefined index: str in E:\php\zemekoule\index.php on line 2" (tu číslovku jsem přepsal tak, aby souhlasila s kódem kterej přikládám)
<?php $stranka = $_GET['str']; if (!isset($_GET['str'])) { $stranka = "uvod"; } else { $stranka = $_GET['str']; } $soubor = $stranka.".php"; if (!file_exists($soubor)) { $soubor = "uvod.php"; } include ($soubor); ?> Co je na řádku 2 špatně a jak to odstranit? (při zakládání dotazu vykoukly dvě vlákna, ale tam jsem nic nevyřešil, ani na php.net, takže s tím mým chápáním php to asi nebude tak slavný...) Edit: zapoměl jsem dodat že to zkouším na localhostu, což je zřejmě z textu patrný a ani nevím jestli to může mít vliv |
||
miskith Profil |
#2 · Zasláno: 14. 9. 2010, 18:25:24 · Upravil/a: miskith
Problém máš v tom, že nahoře definuješ proměnnou "$strana" a dáváš jí hodnotu $_GET['str'], což neexistuje, pokud nemáš stranka.php?str...
Tudíž buď si definuj, že pokud není hodnota, aby se definovala: if (!isset($_GET['str'])){$_GET['str']='';} A nebo tam nedefinuj tu proměnou a nadále používej GET. |
||
pavuk Profil |
#3 · Zasláno: 14. 9. 2010, 18:30:11
BINGO!
Doufám že nezůstanu tatarem celej život... Děkuju, funguje to výborně (a jak už teď vidím taky zcela logicky...) |
||
miskith Profil |
#4 · Zasláno: 14. 9. 2010, 18:44:59
pavuk:
Ne tak jako v pohodě, ale zrovna v tomhle kódu si na chybu mohl přijít. Napíše ti to číslo řádku, jdeš na určitý číslo řádku. píše ti to tam něco o "str", najdeš si, kde je na tom řádku "str" (v tvém případě jen na jednom místě)... Přeložíš si co je "Undefined" a máš to. Ale pohoda, každej nějak začínal ;). |
||
pavuk Profil |
#5 · Zasláno: 14. 9. 2010, 19:36:35
miskith:
Ba právě, kouknu na číslo, jdu tam, je tam nedefinovaný "str", v kódo vidím že str definuju, prostě jsem v tom hledal chybu v syntaxi, mně nenapadlo použít hlavu... |
||
petr 6 Profil |
#6 · Zasláno: 15. 9. 2010, 11:02:20
miskith:
Není to trochu zbytečné řešení? Stačilo by přece jenom vypustit řádek 2, ve kterém definuje proměnou, kterou nepoužívá (protože ji následně v obou větvích znovu definuje). |
||
Časová prodleva: 14 let
|
0