NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 11 - Skládání stránek v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na 666responsible
David Hynek:1.9.2014 12:56

tak předpokládám, že chyba bude v cestě k souboru. Ale rozhodně bych byl opatrný s vkládáním samotného GETu bez kontroly.

jinak:

$obsah = file_get_conten­ts("podstranky/{$_GET['s­tranka']}.html");
echo $obsah;

Editováno 1.9.2014 12:59
Odpovědět
1.9.2014 12:56
Čím víc vím, tím víc věcí nevím.
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na 666responsible
Juraj Mlich:1.9.2014 13:13

Chyba je v tom, že pristupuješ k prvku poľa, ktorého index neexistuje. Zjednodušene - pole, uložené v $_GET, neobsahuje index "stranka".

 
Odpovědět
1.9.2014 13:13
Avatar
danhill
Člen
Avatar
Odpovídá na Juraj Mlich
danhill:4.11.2014 21:59

Ahoj, mám stejný problém. Ty "warningy" u
if (isset($_GET['s­tranka'])) {
$stranka = $_GET['stranka'];
}

Ale neporozuměl jsem Tvé odpovědi, jak to opravit.
Mohu poprosit ještě o dodatečné vysvětlení?
Děkuji moc.

Odpovědět
4.11.2014 21:59
Nikdy není tak zle, aby nemohlo být ještě hůře.
Avatar
danhill
Člen
Avatar
Odpovídá na danhill
danhill:4.11.2014 22:09

Omlouvám se, po bližším ohledání mám asi jiný problém (již nelze editovat), vkládám tedy dotaz znova:

Ahoj, mám podobný problém.

$vlozeno = include('podstran­ky/' . $stranka . '.php');
if (!$vlozeno)
echo('Podstránka nenalezena');

Tak když zadám např.: /index.php?stran­ka=neco (neco na mém webu nexistuje)
Tak bych očekával,že se mi vypíše pouze to echo('Podstránka nenalezena');

ale navíc to na mě vyhodí warning:

Warning: include() [function.include]: Unable to access podstranky/neco.php in /data/www/xxx­.cz/php.xxx.cz/in­dex.php on line 42

Warning: include(podstran­ky/neco.php) [function.include]: failed to open stream: No such file or directory in /data/www/xxx­.cz/php.xxx.cz/in­dex.php on line 42

Warning: include() [function.include]: Failed opening 'podstranky/ne­co.php' for inclusion (include_path='­.:/usr/local/php5/lib­/php') in /data/www/xxx­.cz/php.xxx.cz/in­dex.php on line 42
Podstránka nenalezena

Děkuji za pomoc.

Editováno 4.11.2014 22:12
Odpovědět
4.11.2014 22:09
Nikdy není tak zle, aby nemohlo být ještě hůře.
Avatar
Odpovídá na danhill
Martin Konečný (pavelco1998):4.11.2014 22:33

Můžeš tam hodit podmínku, jestli ten soubor existuje.

if (file_exists($soubor)) {
  include $soubor;
} else {
  echo "stránka neexistuje";
}
Odpovědět
4.11.2014 22:33
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
danhill
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
danhill:5.11.2014 18:20

Aha, děkuji.
Znaméná to, že ty warningy jsou v pořádku?
Mimochodem čím definuji proměnnou $soubor? To jako,že si do ní vypíšu existující stránky ve složce podstránky?

Odpovědět
5.11.2014 18:20
Nikdy není tak zle, aby nemohlo být ještě hůře.
Avatar
Odpovídá na danhill
Martin Konečný (pavelco1998):5.11.2014 19:00

S těmi warningy záleží, jak to myslíš. V pořádku je, že se to tak chová. Že ti to hází chyby, už v pořádku není. :D
Hlavně nepotlačuj chyby pomocí zavináče, to se dělá jen ve výjimečných případech.

Ta proměnná $soubor obsahuje cestu k souboru. Nechtělo se mi to celý vypisovat, ale je to to, co píšeš v tom includu

'podstranky/' . $stranka . '.php'

Já jen moc nemám rád takhle složený stringy, tak si to radši uložím do proměnný.

Odpovědět
5.11.2014 19:00
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
danhill
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
danhill:5.11.2014 21:45

Super, děkuji moc za pomoc.
Měl bych hned další dotaz, který souvisí více méně sice až s dalšími lekcemi,ale u téhle to začalo.
Do stránky kontakt jsem nasunul formulář pro mail,který jsme tady tvořili dříve.
Dokonce se mi podařilo využít vlastní funkce z knihovnou z lekce 14 a 15.
Ale trochu jsem zmatený z funkce header, která mi v tuto chvíli nechodí.
Původní zápis byl :
header('Location: mailform.php?us­pech=ano');

No jo,ale co do Location napíšu nyní, když stránka s formulářem má tvar
index.php?stran­ka=kontakt

Odpovědět
5.11.2014 21:45
Nikdy není tak zle, aby nemohlo být ještě hůře.
Avatar
Odpovídá na danhill
Martin Konečný (pavelco1998):5.11.2014 22:31
// ... kód na odeslání mailu

header("location:index.php?stranka=kontakt&uspech=ano");
exit;

Pokud předpokládám správně, že se po odeslání formuláře přesměruje na tu samou stránku, tak ten parametr stranka necháš a přidáš tam další parametr uspech=ano.
Pokud máš v URL více parametrů, můžeš použít proměnnou $_SERVER["REQU­EST_URI"], která obsahuje URL včetně parametrů. Vypadalo by to pak asi takhle:

$url = $_SERVER["REQUEST_URI"] . "&uspech=ano";
header("location:" . $url);
exit;
Odpovědět
5.11.2014 22:31
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
mkores.mk
Člen
Avatar
mkores.mk:5.3.2015 18:37

Ahoj,mám možná pěkně debilní dotaz, ale nemůžu si ho odpustit. Jak převedu .html dokument na .php? Dělal jsem si HTML stránky podle návodu zde na webu a teď tedy do nich chci přidat php. Stačí jenom přepsat příponu?

Díky za odpověď :)

Editováno 5.3.2015 18:39
 
Odpovědět
5.3.2015 18:37
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 159.