Autor | Zpráva | ||
---|---|---|---|
petercz87 Profil |
Měl bychí dotaz ted ohledně php. Snažím se naprogramovat dynamickou stránku (opět se všechno učím od začátku takže dělám blbé chyby) a mám problém s chybovou hláškou.
Tady je část kodu. <?php $text=htmlspecialchars(strip_tags($_GET['text'])); if($text==''){ $text='obsah'; } if (file_exists($text.'.php')) { require $text.'.php'; } else { require 'error404.php'; } ?> $text=htmlspecialchars(strip_tags($_GET['text'])); Tahle část kodu mi pak vyskakuje na zobrazene stránce jako Notice: Undefined index: text in D:\programy\server\xampp\htdocs\myweb\neco\web\index.php on line 39
Můžete mi poradit v čem je chyba? Ten kod je přesně podle učebenice, ze které se učím. Podobný problém s proměnou GET a POST mi vyskakuje i u formuláře. Díky moc za pomoc už totiž fakt nevím v čem je chyba. Když zkopiruju zdroják z učebnice pořád se tam ta chyba píše. Moderátor Majkl578: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Someone Profil |
Tam jde o to, že $_GET['text'] v té době neexistuje.
Jak tak na to koukám tak by to mohlo vypadat takhle: <?php if (!empty($_GET['text'])) { // zkontrolujeme zda existuje $_GET['text'] a že se nerovná '' $text = $_GET['text']; // pokud existuje a nerovná se '' přiřadíme do proměnné $text } else { $text = "obsah"; // jinak přiřadíme do proměnné $text 'obsah' } if (file_exists($text.'.php')) { require $text.'.php'; } else { require 'error404.php'; } ?> |
||
petercz87 Profil |
#3 · Zasláno: 27. 6. 2012, 20:00:30
Díky funguje. Jen se divím, že ten kod, který jsem přepsal z učebnice nefungoval.
|
||
Someone Profil |
#4 · Zasláno: 27. 6. 2012, 20:08:29
petercz87:
on v podstatě funguje, jen tam není ošetřeno to, že $GET['text'] nemusí existovat, takže vypisuje notice. |
||
petercz87 Profil |
Nerad s tím ještě otravuju, ale proměnným, kterí se využívají ve struktuře, kterou jsem vypsal výše pořád úplně nerozumím. Chápu co je to proměnná, jak s ní odčítat, sčítat, vytvářet cykly..chápu význam if a else, zase tak moc mimo nejsem. Potřeboval bych jen trochu polopatě vysvětlit jak přesně každá řádka funguje a k čemu slouží. Vím, že bez tohohle se dál v php prostě nehnu. XHTML a CSS mi problém nedělalo, i když to je něco jiného.
|
||
panther Profil |
petercz87:
jakym promennym nerozumis? Je tam jen jedna, $text . Pokud nerozumis nektere z pouzitych funkci, klikni na ni, dostanes se do manualu.
Jen prozradim dalsi zpusob, ktery muzes nekdy pozdeji take zkoumat. Funguje stejne, jako ten na r. 2-6 v [#2]: $text = !empty($_GET['text']) ? $_GET['text'] : 'obsah'; |
||
petercz87 Profil |
#7 · Zasláno: 28. 6. 2012, 16:09:13
No myslím, že mě spíše zmátla učebnice. Ten kod v ní házel tu "chybovou" hlášku až mi Someone poradil značku empty. Zkouším si různé možnosti jak a co funguje tak snad příjdu na to jak všechno přesně funguje. Trochu nerozumím významu komentáře
if (!empty($_GET['text'])) { // zkontrolujeme zda existuje $_GET['text'] a že se nerovná '' $text = $_GET['text']; // pokud existuje a nerovná se '' přiřadíme do proměnné $text |
||
jenikkozak Profil |
#8 · Zasláno: 28. 6. 2012, 16:26:38
petercz87:
Podmínka if (empty($_GET['text'])) { je splněna vždy, pokud „proměnná“ $_GET["text"] je prázdná. Protože chceš ověřit pravý opak, použiješ znak negace - vykřičník. if (!empty($_GET['text'])) { Taková podmínka je splněna, pokud $_GET["text"] není prázdný.
|
||
Časová prodleva: 12 let
|
0