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
Otvorený Zdroj
Tvůrce
Avatar
Otvorený Zdroj:24.1.2019 22:14

<!DOCTYPE html>
<html lang="cs-cz">

<head>
<meta charset="utf-8" />
<meta name="description" content="Osobní portfolio programátora HoBiho." />
<meta name="keywords" content="portfolio, programátor, HoBi" />
<meta name="author" content="HoBi" />
<link rel="shortcut icon" href="obrazky/i­kona.ico" />
<link rel="stylesheet" href="styl.css" type="text/css" />
<title><?php echo($_GET['s­tranka']); ?></title>
</head>

<body>
<!DOCTYPE html>
<html lang="cs-cz">

<head>
<meta charset="utf-8" />
<meta name="description" content="Osobní portfolio programátora HoBiho." />
<meta name="keywords" content="portfolio, programátor, HoBi" />
<meta name="author" content="HoBi" />
<link rel="shortcut icon" href="obrazky/i­kona.ico" />
<link rel="stylesheet" href="styl.css" type="text/css" />
<title>HoBiho portfolio</title>
</head>

<body>
<header>
<div id="logo"><h1>Ho­Bi</h1></div>
<nav>
<ul>
<li><a href="index.php?stran­ka=domu">Domů</a></li>
<li><a href="index.php?stran­ka=omne">O mně</a></li>
<li><a href="index.php?stran­ka=dovednosti">Do­vednosti</a></li>
<li><a href="index.php?stran­ka=reference">Re­ference</a></li>
<li><a href="index.php?stran­ka=kontakt">Kon­takt</a></li>
</ul>
</nav>
</header>

<article>
<div id="centrovac">
<header>
<h1><?php echo($_GET['s­tranka']); ?></h1>
</header>

<section>
<?php
if (isset($_GET['s­tranka']))
$stranka = $_GET['stranka'];
else
$stranka = 'domu';
if (preg_match('/^[a-z0-9]+$/', $stranka))
{
$vlozeno = include('podstran­ky/' . $stranka . '.php');
if (!$vlozeno)
echo('Podstránka nenalezena');
}
else
echo('Neplatný parametr.');
?>
</section>
<div class="cistic"></div>
</div>
</article>

<footer>
Vytvořil ©HoBi 2013 pro <a href="http://­devbook.cz">DEV­BOOK.CZ</a>
</footer>
</body>
</html>

Odpovědět
24.1.2019 22:14
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Otvorený Zdroj:24.1.2019 22:41

Zaujíma ma, ako môže byť premenná $vlozeno = include('podstran­ky/' . $stranka . '.php');

vkladať podstránky, keď premenná nie je priamo volaná ako by to bolo napr. pri: include('podstran­ky/' . $stranka . '.php');. Je to niekde vysvetlené, stačí keď ju volá samotná negacia if (!$vlozeno)??

Odpovědět
24.1.2019 22:41
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Odpovídá na Otvorený Zdroj
Michal Šmahel:25.1.2019 17:45

Ahoj, je dobře, že nad tím přemýšlíš. Jen příště prosím vkládej zdrojové kódy přes ikonku </> (vedle smajlíka).

Obsah souboru 'podstranky/' . $stranka . '.php' se do proměnné nevkládá. Funkce include() a její podobné (include_once(), require() a require_once()) vrací hodnoty true nebo false. True při úspěchu a false při neúspěchu. Stránka je tedy vložena (pokud je soubor nalezen) funkcí include() a do proměnné $vlozeno je uloženo, jak operace proběhla.

Více informací je v dokumentaci.

Odpovědět
25.1.2019 17:45
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Otvorený Zdroj
Pavel Lachnit:28.1.2019 11:38

Zobrazovat jako Titulek stránky hodnotu předávanou parametrem GET mi přijde trochu nehezké, nečitelné...

<!DOCTYPE html>
<html lang="cs-cz">

<head>
        <meta charset="utf-8" />
        <title>
                <?php
                        if (isset($_GET['stranka']))
                                $stranka = $_GET['stranka'];
                        else
                                $stranka = 'domu';
                        if (preg_match('/^[a-z0-9]+$/', $stranka))
                        {
                                $titulky = array(
                                                  'domu'       => '',
                                                  'omne'       => '- O mně',
                                                  'dovednosti' => '- Dovednosti',
                                                  'reference'  => '- Reference',
                                                  'kontakt'    => '- Kontakt',
                                                  'poslatmail' => '- Můj e-mailový formulář',
                                                );

                                echo("Pavlova stránka $titulky[$stranka]");
                        }
                        else
                                echo('Chyba!');
                ?>
        </title>
        <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

        <body>
                <header>
                        <div id="logo"><h1>Lachnit Pavel</h1></div>
                        <nav>
                                <ul>
                                        <li><a href="index.php?stranka=domu">Domů</a></li>
                                        <li><a href="index.php?stranka=omne">O mně</a></li>
                                        <li><a href="index.php?stranka=dovednosti">Dovednosti</a></li>
                                        <li><a href="index.php?stranka=reference">Reference</a></li>
                                        <li><a href="index.php?stranka=kontakt">Kontakt</a></li>
                                </ul>
                        </nav>
                </header>

                <article>
                        <div id="centrovac">
                                <header>
                                        <?php
                                                if (isset($_GET['stranka']))
                                                        $stranka = $_GET['stranka'];
                                                else
                                                        $stranka = 'domu';
                                                if (preg_match('/^[a-z0-9]+$/', $stranka))
                                                {
                                                        $nadpisy = array(
                                                                         'domu'       => '<h1>Pavel</h1>',
                                                                         'omne'       => '<h1>O mně</h1>',
                                                                         'dovednosti' => '<h1>Dovednosti</h1>',
                                                                         'reference'  => '<h1>Reference</h1>',
                                                                         'kontakt'    => '<h1>Kontakt</h1>',
                                                                         'poslatmail' => '<h1>Odeslání e-mailu</h1>',
                                                                        );

                                                        echo("$nadpisy[$stranka]");
                                                }
                                                else
                                                        echo('<h1>Chyba!</h1>');
                                        ?>
                                </header>

                                <section>
                                        <?php
                                                if (isset($_GET['stranka']))
                                                        $stranka = $_GET['stranka'];
                                                else
                                                        $stranka = 'domu';
                                                if (preg_match('/^[a-z0-9]+$/', $stranka))
                                                {
                                                        $vlozeno = include('podstranky/' . $stranka . '.php');
                                                        if (!$vlozeno)
                                                                echo('Podstránka je ve vývoji, zkuste to později.');
                                                }
                                                else
                                                        echo('Neplatný parametr.');
                                        ?>
                                </section>
                                <div class="cistic"></div>
                        </div>
                </article>


                <footer>
                        Vytvořil &copy;LaP 2018 podle <a href="http://itnetwork.cz">ITNETWORK.CZ</a>
                </footer>
        </body>

</html>

Takže dělám v tagu <title> po kontrole vstupu "překlad" hodnot z $_GET['stranka'] na čitelnější text.

Odpovědět
28.1.2019 11:38
Nikdy Ničemu Nevěř!
Avatar
Odpovídá na Libor Šimo (libcosenior)
Pavel Lachnit:28.1.2019 11:52

Myslíš něco takového?

<div>
          <header>
            <?php
                if (isset($_GET['stranka']))
                    $stranka = $_GET['stranka'];
                else
                    $stranka = 'sms';
                if (preg_match('/^[a-z0-9]+$/', $stranka))
                {
                    $heads = array(
                        'domu'       => 'Úvodní stránka',
                        'omne'       => 'O mně',
                        'sms'         => 'SMSky',
                        );
                    echo("$heads[$stranka]");
                        }
          </header>
        <section>
            <?php
                if (isset($_GET['stranka']))
                    $stranka = $_GET['stranka'];
                else
                    $stranka = 'sms';
                if (preg_match('/^[a-z0-9]+$/', $stranka))
                {
                    $vlozeno = include('podstranky/' . $stranka . '.php');
                if (!$vlozeno)
                    echo('Podstránka nenalezena');
                }
                else
                    echo('Neplatný parametr.');
            ?>
        </section>
        <div class="cistic"></div>
  </div>
Odpovědět
28.1.2019 11:52
Nikdy Ničemu Nevěř!
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Odpovědět
31.1.2019 1:59
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Adam Bouček
Člen
Avatar
Adam Bouček:8.2.2019 11:37

Dobrý den, vše mi jde až na jednu věc a to je když se mi PHP soubor otevře v <section> tam ten text, třeba z domu.php mi nechce zobrazit speciální znaky. Jinak v menu znaky fungují.

 
Odpovědět
8.2.2019 11:37
Avatar
Walter
Člen
Avatar
Odpovídá na Adam Bouček
Walter:10.2.2019 7:20

Měl jsem stejný problém. Netbeans totiž pracuje ve WINDOWS-1250. Já nepřišel na to jak se to přendavá. Buď zkus jiný program (PHPstorm je super až na to, že je zdarma jen na 30 dní a má složitější instalaci XAMPP) nebo se pokus přijít na to jak Netbeans přepnpit do UTF-8.

 
Odpovědět
10.2.2019 7:20
Avatar
Walter
Člen
Avatar
Walter:10.2.2019 7:34

Dobrý den,
chtěl bych se zeptat, jak zařídit,a by se v index.php defaultně zobrazovala stránka domu.php a nasledně se pak měnila. Jde mi o to, že když otevřu web tak se mi zobrazí pouze header a foote, ale section je prázdná

 
Odpovědět
10.2.2019 7:34
Avatar
Jan Poláček
Tvůrce
Avatar
Odpovídá na Walter
Jan Poláček:10.2.2019 14:34

Ahoj, na konci článku to tam je napsané

if (isset($_GET['stranka']))
        $stranka = $_GET['stranka'];
else
        $stranka = 'domu';

v tomto úryvku je defaultní stránka domu viz 4 řádek (jinak to je podmínka > je nastavená proměnná $_GET["stranka"]?, pokud ano, ulož do proměnné $stranka, jinak do proměnné $stranka ulož domu) - celá cesta by měla být tedy "podstranky/do­mu.php", pokud nemáš ve složce podstranky soubor domu.php, nebude to fungovat, ale mělo by to něco vypsat.

Odpovědět
10.2.2019 14:34
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
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.