Beans html moduly php meno. Jdoc:include - metóda pre zobrazenie obsahu na stránke. Pridanie jednoduchých lomítok

V krátkosti sme sa dotkli témy metód zobrazovania obsahu v tele šablóny. Poďme sa teraz bližšie pozrieť na to, čo to je a s čím sa to jedáva. Takže deklarácie metód jdoc sú prítomné v každej šablóne Joomla a zobraziť tú alebo onú informáciu v tele šablóny (to znamená na stránke lokality). Vo všeobecnosti deklarácia metódy vyzerá takto:

Tento riadok zobrazuje informácie z komponentov na stránke, napríklad články z com_content. Typ výstupných prvkov je špecifikovaný v atribúte.

1. typ - typy výstupných prvkov.

  • komponent- ako som písal vyššie, zobrazuje hlavný obsah stránky. Dá sa zavolať iba raz na šablónu.
  • hlavu- sa tiež oznamuje raz po úvodnom štítku . Slúži na zobrazenie štýlov, skriptov, a metaúdaje aktuálnej stránky.</li><li><i>správu</i><i>- </i> zobrazuje systémové správy. Deklarované raz v tele dokumentu.</li><li><i>inštalácia</i>- nič nezobrazuje a je „návodom“ na inštaláciu.</li><li><i>modul -</i> zobrazí na stránke jeden modul. Počet inzerátov je neobmedzený.</li><li><i>modulov</i>- na rozdiel od predchádzajúceho typu umožňuje na svojej pozícii zobraziť viac ako jeden počet modulov.</li> </ul><p>Pri prvých štyroch uvedených typoch ich stačí uviesť na stránke. V prípade typu modulu sa úloha trochu skomplikuje. Aby sme mohli modul zobraziť na stránke, musíme preň najskôr vytvoriť modul <b>modulárna pozícia</b> s jedinečným identifikátorom (názov pozície modulu). To sa vykonáva pomocou atribútu name="position name" a povinného pridania riadku:</p><p> <position>názov pozície</position> do súboru templateDetails.xml. Opísaním názvu pozície v templateDetails.xml ju označíme v systéme a vidíme ju v správcovi modulov. Názvy pozícií môžu byť ľubovoľné, hoci na zobrazenie horného menu sa štandardne používa pozícia name = "user3".</p><p><b>2. štýl - popis štýlu výstupu (mod chrome).</b></p> <p>Vzhľad a štruktúra plášťa modulu závisí od zadaného štýlu. Vyzerá ako</p><p> :<jdoc:include type="modules" name="user1" style="xhtml" />V predvolenom nastavení existuje niekoľko štýlov výstupu modulu:</p><ul><li><i>xhtml -</i> zobrazí modul v bloku s funkciou názvu modChrome_xhtml($module, &$params, &$attribs) <br>{<br>if (!empty ($module->content)) : ?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <?php if ($module->názov relácie != 0) : ?> <br> <h3><?php echo $module->titul; ?></h3><br> <?php endif; ?><br> <?php echo $module->obsah; ?> <br> </div><br> <?php endif;<br>}</li><li><i>stôl -</i> zobrazí modul v rozložení štruktúry tabuľky <br>funkcia modChrome_table($module, &$params, &$attribs) <br>{ ?><br> <table cellpadding="0" cellspacing="0" class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <?php if ($module->názov relácie != 0) : ?> <br> <tr><br> <th><br> <?php echo $module->titul; ?> <br> </th><br> </tr><br> <?php endif; ?><br> <tr><br> <td><br> <?php echo $module->obsah; ?> <br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>horz -</i> zobrazuje obsah modulu v bunke tabuľky, horizontálne funkcia modChrome_horz($module, &$params, &$attribs) <br>{ ?><br> <table cellspacing="1" cellpadding="0" width="100%"><br> <tr><br> <td><br> <?php modChrome_table($module, $params, $attribs); ?><br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>zaoblené</i>- zobrazí modul v niekoľkých vnorených blokoch pre komplexný štýl v podobe grafických okrajov (napr. zaoblené rohy) funkcia modChrome_rounded($module, &$params, &$attribs) <br>{ ?><br> <div class="module<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <div><br> <div><br> <div><br> <?php if ($module->názov relácie != 0) : ?> <br> <h3><?php echo $module->titul; ?></h3><br> <?php endif; ?><br> <?php echo $module->obsah; ?> <br> </div><br> </div><br> </div><br> </div><br> <?php<br>}</li><li><i>obrys</i>- pridá prednastavené štýly css do funkcie bloku modulu modChrome_outline($module, &$params, &$attribs) <br>{<br>static $css=false; <br>ak (!$css) <br> {<br>$css=true; <br>jimport("joomla.environment.browser"); <br>$doc = JFactory::getDocument(); <br>$browser = JBrowser::getInstance(); <br>$doc->addStyleDeclaration(".mod-preview-info ( výplň: 2px 4px 2px 4px; okraj: 1px plná čierna; pozícia: absolútna; farba pozadia: biela; farba: červená;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper ( farba pozadia:#eee; okraj: 1px bodkovaná čierna; farba:#700;)"); <br>if ($browser->getBrowser()=="msie") <br> {<br>if ($browser->getMajor()<= 7) {<br>$doc->addStyleDeclaration(".mod-preview-info (filter: alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (filter: alpha(opacity=50);)"); <br> } <br>inak( <br>$doc->addStyleDeclaration(".mod-preview-info (-ms-filter: alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (-ms-filter: alpha(opacity=50);)"); <br> } <br> } <br>inak <br> {<br>$doc->addStyleDeclaration(".mod-preview-info (opacity: 0.8;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (nepriehľadnosť: 0,5;)"); <br> } <br> } <br> ?><br> <div class="mod-preview"><br> <div class="mod-preview-info"><?php echo $module->position."[".$module->style."]"; ?></div><br> <div class="mod-preview-wrapper"><br> <?php echo $module->obsah; ?> <br> </div><br> </div><br> <?php<br>}</li><li><i>žiadny</i>- podobný štýlu vôbec nešpecifikovanému. Zobrazí modul bez funkcie dizajnu a názvu modChrome_none($module, &$params, &$attribs) <br>{<br>echo $module->obsah; <br>}</li> </ul><p>Všetky prednastavené štýly sa nachádzajú v súbore templates/system/html/modules.php. Neobmedzujeme sa však na používanie iba poskytnutých možností, ale sme celkom schopní vytvoriť si vlastné.</p> <p><b>3. Vytvorte si vlastný režim Chrome.</b></p> <p><b><br></b> Poskytnuté predvolené typy reprezentácie modulov teda nespĺňajú aktuálne požiadavky. Musíte pridať svoj vlastný štýl dizajnu. Ako príklad si vyberme pomerne často sa opakujúcu situáciu. Podľa zadania namiesto <h3>vložte názov modulu do značky <span>, ktorý je sémanticky neutrálny. Musíte tiež umiestniť blok obsahu modulu samostatne <div>. Na vytvorenie vlastného štýlu výstupu modulu použijeme štandardné nástroje. Väčšina šablón Joomla má priečinok html/ (templates/názov šablóny/html/), ktorý sa používa na takzvané šablónovanie. To znamená, že ak skopírujete šablónu modulu do tohto priečinka, tak namiesto šablóny z adresára modules/my_module/tmpl/default sa vypíše súbor z templates/template name/html/my_modules/default. Komponenty sú šablónované rovnakým spôsobom. Pohodlné a praktické. V priečinku html/ vašej šablóny vytvorte súbor modules.php. Ak takýto priečinok v šablóne nie je, vytvoríme ho. Zapíšeme to do súboru</p><p> <?php<br>function modChrome_modbox($module, &$params, &$attribs) // Volanie funkcie <br>{<br>if (!empty ($module->content)) : /* Skontrolujte, či pozícia obsahuje povolený modul */?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); /* zobrazí príponu css triedy modulu */ ?>"> <br> <?php if ($module->showtitle != 0) : /* skontrolujte, či je zahrnutý názov modulu */ ?> <br> <span class="title"><?php echo $module->titul; /* Vytlačí názov */ ?></span><br> <?php endif; ?><br> <div class="modcontent"><br> <?php echo $module->obsah; /* Výstup obsahu modulu */ ?> <br> </div><br> </div><br> <?php endif;<br>} <br>?> Hotovo. Teraz ho stačí zadať ako štýl výstupu. <jdoc:include type="modules" name="user1" style="modbox"/>K našej pozícii priradíme modul a pozrieme sa na výsledok.</p> <p>Jednou zo skvelých vecí na PHP je spôsob, akým pracuje s HTML formulármi. Hlavná vec je, že každý prvok formulára sa automaticky sprístupní vašim programom PHP. Podrobné informácie o používaní formulárov v PHP nájdete v časti. Tu je príklad HTML formulára:</p> <p><b>Príklad č. 1 Najjednoduchší HTML formulár</b></p> <p><form action="action.php" method="post"> <p>Tvoje meno: <input type="text" name="name" /></p> <p>Tvoj vek: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form></p> <p>Na tejto forme nie je nič zvláštne. Toto je bežný HTML formulár bez špeciálnych značiek. Keď používateľ vyplní formulár a klikne na tlačidlo Odoslať, zavolá sa stránka action.php. Tento súbor môže mať niečo ako:</p> <p><b>Príklad č. 2 Zobrazenie údajov formulára</b></p> <p>Ahoj,<?php echo htmlspecialchars ($_POST [ "name" ]); ?> .<br>Vám<?php echo (int) $_POST [ "age" ]; ?>rokov.</p> <p>Príklad výstupu tohto programu:</p> <p>Dobrý deň, Sergey. Máte 30 rokov.</p> <p>Ak neberiete do úvahy kúsky kódu s <span>htmlspecialchars()</span> A <i>(int)</i>, princíp fungovania tohto kódu by mal byť jednoduchý a zrozumiteľný. <span>htmlspecialchars()</span> Zabezpečuje, že „špeciálne“ znaky HTML sú správne zakódované, aby sa na vašu stránku nevložil škodlivý kód HTML alebo Javascript. Vekové pole, o ktorom vieme, že by malo byť číslo, môžeme jednoducho previesť <span>celé číslo</span>, ktorý vás automaticky zbaví nechcených postáv. PHP to môže urobiť aj automaticky pomocou rozšírenia filtra. Premenné $_POST["name"] a $_POST["age"] za vás automaticky nastaví PHP. Predtým sme používali superglobálnu premennú $_SERVER, ale tu používame aj superglobálnu premennú $_POST, ktorá obsahuje všetky POST dáta. Všimni si <i>spôsob odoslania</i>(metóda) nášho formulára je POST. Ak by sme použili metódu <i>GET</i>, potom by naše informácie z formulára boli v superglobálnej premennej $_GET . Prípadne môžete použiť premennú $_REQUEST, ak na zdroji údajov nezáleží. Táto premenná obsahuje zmes údajov GET, POST a COOKIE.</p> <p><b>pred 15 rokmi</b></p> <p>Podľa špecifikácie HTTP by ste mali použiť metódu POST, keď používate formulár na zmenu stavu niečoho na strane servera. Ak má napríklad stránka formulár umožňujúci používateľom pridávať vlastné komentáre, ako je tento tu, formulár by mal používať POST. Ak kliknete na "Znova načítať" alebo "Obnoviť" na stránke, na ktorú ste sa dostali prostredníctvom POST, takmer vždy ide o chybu -- nemali by ste ten istý komentár uverejňovať dvakrát -- čo je dôvod, prečo tieto stránky nie sú uložené ako záložky ani vo vyrovnávacej pamäti.</p><p>Metódu GET by ste mali použiť vtedy, keď váš formulár dostáva niečo zo servera a v skutočnosti nič nemení. Napríklad formulár pre vyhľadávací nástroj by mal používať GET, pretože vyhľadávanie na webovej lokalite by nemalo meniť nič, čo by klienta mohlo zaujímať, a ukladanie výsledkov dotazu vyhľadávacieho nástroja do medzipamäte je rovnako užitočné ako vytváranie záložiek alebo ukladanie do vyrovnávacej pamäte. statická HTML stránka.</p> <p><b>pred 2 rokmi</b></p> <p>Stojí za to objasniť:</p><p>POST nie je bezpečnejšie ako GET.</p><p>Dôvody pre výber GET verzus POST zahŕňajú rôzne faktory, ako je zámer požiadavky ("odosielate" informácie?), veľkosť požiadavky (existujú limity na to, ako dlho môže byť URL, a parametre GET sa odosielajú v adresu URL) a ako jednoducho chcete akciu zdieľať – napríklad vyhľadávanie Google je GET, pretože uľahčuje kopírovanie a zdieľanie vyhľadávacieho dopytu s niekým iným jednoduchým zdieľaním adresy URL.</p><p>Bezpečnosť sa tu berie do úvahy len kvôli skutočnosti, že GET je jednoduchšie zdieľať ako POST. Príklad: nechcete, aby GET posielal heslo, pretože používateľ môže zdieľať výslednú adresu URL a neúmyselne odhaliť svoje heslo.</p><p>GET a POST však rovnako ľahko zachytí škodoradostná osoba, ak nenasadíte TLS/SSL na ochranu samotného sieťového pripojenia.</p><p>Všetky formuláre odoslané cez HTTP (zvyčajne port 80) sú nezabezpečené a dnes (2017) nie je veľa dobrých dôvodov na to, aby verejná webová stránka nepoužívala HTTPS (čo je v podstate HTTP + Transport Layer Security).</p><p>Ako bonus, ak používate TLS, minimalizujete riziko, že vaši používatelia dostanú kód (AD) do vašej návštevnosti, ktorý ste tam nevložili vy.</p> <p>Toto je bežná zraniteľnosť triedy vrátane PHP. Ale ten, pre koho som audit robil, mi povedal, že táto zraniteľnosť sa nedá zneužiť, takže sa to nepočíta. Musel som sa s ním hádať</p> <h2>Čo je PHP-include</h2> <p>Urobme malý vzdelávací program o tejto zraniteľnosti. PHP-include je zraniteľnosť, ktorá vám umožňuje „zahrnúť“ ľubovoľný súbor, napríklad tento kód:</p> <p>$modul=$_REQUEST["modul"]; include("modules/".$module);</p> <p>A keďže v súbore „/etc/passwd“ zvyčajne nie sú žiadne značky PHP (<?php и?>), potom sa zobrazí v prehliadači, rovnako ako by sa html kód zobrazoval za php tagmi v bežnom php skripte. Čítanie súborov je samozrejme len jednou z možných implementácií tohto útoku. Hlavná vec je zahrnutie potrebných súborov s potrebným kódom PHP.</p> <p>Vráťme sa k príkladu. Poďme si to skomplikovať:</p> <p>$modul=$_REQUEST["modul"]; include("modules/".$module."/module.class.php");</p> <table class="crayon-table"><tr class="crayon-row"><td class="crayon-nums " data-settings="show"> </td> <td class="crayon-code"><p>$modul = $_ŽIADOSŤ [ "modul" ] ;</p><p>include ("modules/" . $module . "/module.class.php" );</p> </td> </tr></table><p>Ako vidíte, do našej premennej je teraz na konci pridaný riadok, ktorý nám bráni zahrnúť akýkoľvek súbor. Mnohé funkcie PHP teda nie sú binárne bezpečné, to znamená, že takéto funkcie považujú bajt NULL za koniec reťazca. K skriptu pristupujeme takto:</p> <p>script.php?module=../../../../../../../../../../../etc/passwd%00</p> <p>A ak je direktíva magic_quotes zakázaná, potom znova uvidíme obsah /etc/passwd</p> <h2>Existuje nejaká zraniteľnosť?</h2> <p>Vráťme sa k nášmu kódu:</p> <p>$module=addslashes($_REQUEST["modul"]); include("modules/".$module."/module.class.php");</p> <table class="crayon-table"><tr class="crayon-row"><td class="crayon-nums " data-settings="show"> </td> <td class="crayon-code"><p>$module = lomítka ($_REQUEST [ "modul" ] ) ;</p><p>include ("modules/" . $module . "/module.class.php" );</p> </td> </tr></table><p>Ako môžete vidieť, naša premenná je nútená prejsť cez „pridané lomky“ a ak sa pokúsime použiť bajt NULL, skonvertuje sa na „\0“ a zahrnutie nebude fungovať.</p> <p>Pokrok však nestojí! Ukázalo sa, že niektorí chlapci z USH našli zaujímavú vlastnosť v PHP: PHP filesystem attack vectors (anglicky). Aby sme stručne zhrnuli podstatu článku, php spracováva cesty pomocou niekoľkých funkcií:</p> <ul><li><b>Skrátenie cesty</b>- php skráti reťazec cesty na zadanú dĺžku MAXPATHLEN (V systéme Windows až 270 znakov, na NIX - zvyčajne 4096, na BSD - zvyčajne 1024)</li> <li><b>Normalizácia cesty</b>— php spracuje cestu špeciálnym spôsobom, pričom odstráni nadbytočné znaky „/“ a „/.“ a ich rôzne kombinácie</li> <li><b>Redukcia na kanonickú formu</b>— odstránia sa zbytočné prechody, napríklad „dir1/dir2/../dir3“ sa skonvertuje na „dir1/dir3/“, pričom sa nekontroluje existencia adresára „dir2“ a ďalšie podobné transformácie (t.j. pokračovanie normalizácie )</li> </ul><p>Teraz, v poradí, čo sa stane s prejdenou cestou:</p> <ol><li>Ak je cesta relatívna, najskôr sa nahradia hodnoty z direktívy include_path</li> <li>Cesto sa potom upraví na určitú dĺžku v závislosti od platformy</li> <li>Cesta sa normalizuje</li> <li>Cesta je zredukovaná na kánonickú formu</li> </ol><p>Teraz to skúsme použiť. Skúsme vložiť určitý súbor “test.php”, ktorý sa nachádza v adresári “modules/”. Ak to chcete urobiť, pridajte symbol „/.“ na koniec. takže celková dĺžka spolu s názvom súboru a hodnotou z include_path je zjavne väčšia ako 4096 znakov. <br>script.php?module=test.php/././.[...]/././.</p> <p>V tomto prípade musíte uhádnuť tak, aby celý reťazec cesty (už orezaný) skončil bodkou (dôležité!), a nie lomkou. Ak to chcete urobiť, môžete pridať jednu lomku takto: <br></p> <p>A jedna z týchto možností bude určite fungovať.</p> <h2>Analyzuje sa</h2> <p>Pozrime sa v poradí, aké premeny sa stanú na ceste <br>modules/test.php//././.[...]/./././module.class.php <br><i>4200 znakov</i> </p> <p>Prvá vec, ktorá sa stane s riadkom, je, že sa k nemu pridá hodnota z include_path: <br>/home/site/public_html/modules/test.php//././.[...]/./././module.class.php <br><i>4223 znakov</i> </p> <p>Reťazec sa potom skráti na MAXPATHLEN (povedzme 4096): <br>/home/site/public_html/modules/test.php//././.[...]/./. <br><i>4096 znakov</i> </p> <p>Tu vidíte, prečo bolo potrebné pridať ďalšiu lomku (inak by bol riadok odrezaný od lomky). Teraz je tento riadok normalizovaný, najskôr sa odstránia nadbytočné lomky: <br>/home/site/public_html/modules/test.php/././.[...]/./. <br><i>4095 znakov</i> </p> <p>Výsledkom je, že dostaneme správnu cestu k súboru, ktorý potrebujeme, a táto cesta už bude prenesená do include a súbor, ktorý potrebujeme, bude zahrnutý.</p> <p>To znamená, že takto úspešne zahrnieme náš súbor „test.php“. <br>script.php?module=test.php//././.[...]/././.</p> <p>To znamená, že zraniteľnosť nie je teoretická. V dôsledku toho môj klient prehral stávku a ja som vyhral stávku a 10 rubľov, na ktoré sme stavili. Samozrejme, okrem 10 rubľov som si získal aj dôveru a rešpekt v očiach klienta, čo je tiež dôležité.</p> <h2>Poznámky</h2> <p>Tu sa pozriem na niekoľko zaujímavých funkcií využívania tejto zraniteľnosti.</p> <h3>Ukončiť adresár</h3> <p>Zvážte tento kód:</p> <p> ) ; </p> <p>Preskočme bod, že môžete použiť RFI a zahrnúť súbor zo vzdialeného servera. Povedzme „allow_url_include=OFF“ na serveri.</p> <p>Uvažujme o situácii, keď potrebujeme vložiť súbor z nižšie uvedeného adresára: <br>script.php?module=../test.php/././.[...]/././.</p> <p>Takáto požiadavka vygeneruje chybu, napríklad súbor sa nenašiel. A aby sme to obišli, musíme to nazvať takto: <br>script.php?module=blabla/../../test.php/././.[...]/././.</p> <p>Nie nadarmo som opísal kanonizáciu ciest. Vďaka nemu nemusí existovať adresár „blabla“.</p> <h3>Pridanie jednoduchých lomítok</h3> <p>Pozorný čitateľ si zrejme všimol, že v popise normalizácie som napísal, že sú odstránené nadbytočné lomky „/“ a bodky s lomkami „/.“ tak prečo nepoužiť práve lomky, aby sme sa vyhli zbytočným trápeniam s bodkou na konci.</p> <p>Je to všetko o algoritmoch, teda lomke s bodkou „/“. je úplne odstránený. Ale s jednoduchými lomkami je situácia trochu komplikovanejšia, počas normalizácie sa každé dve lomky nahradia jednou, až kým nezostane len jedna (!) lomka, príklad:</p><p>/home/site/public_html/modules/test.php//////////////////// <br><i>57 znakov</i> <br> ↓<br>/home/site/public_html/modules/test.php///////// <br><i>48 znakov</i> <br> ↓<br>/home/site/public_html/modules/test.php///// <br><i>44 znakov</i> <br> ↓<br>/home/site/public_html/modules/test.php/// <br><i>42 znakov</i> <br> ↓<br>/home/site/public_html/modules/test.php// <br><i>41 znakov</i> <br> ↓<br>/home/site/public_html/modules/test.php/ <br><i>40 znakov</i> </p> <h3><b>Malá odbočka:</b></h3> <p>Okrem toho, ak venujete pozornosť mnohým populárnym zdrojom hackerov, všimnete si túto chybu. Ako som pochopil, táto chyba začala článkom istého Raz0ra, kde navrhol vektor: <br>index.php?act=../../../../../etc/passwd/////[…]/////</p> <p>A pozor aj v časopise ][aker vo svojom článku zopakoval túto chybu. Navyše aj v pôvodnom článku USH bolo jasne napísané, že nie je vhodné používať len lomky a je potrebné, aby na konci pred normalizáciou zostal dobový znak. Ale jednoduché lomky (aj bez bodky na konci) fungujú len v PHP so Suhosinom.</p> <p>To znamená, že použite lomku s bodkou „/“. - univerzálnejšia metóda, pretože na rozdiel od lomiek „/“ funguje pre všetky verzie php.</p> <h2>Záver</h2> <p>Dúfam, že vám tento článok pomôže pochopiť, že vo svojich skriptoch by ste nemali ponechať ani tie najmenšie zraniteľnosti, pretože skôr či neskôr si pre ne môžete vyvinúť vlastný vektor útoku, čo môže viesť k vážnym následkom.</p> <p>Prvok em predstavuje pasáž textu s dôrazom. Pomocou nej môžete upriamiť pozornosť čitateľa na význam vety alebo odseku. Čo to znamená, vám poviem po , ktorý popisuje prvok em.</p><blockquote><b>Tabuľka 8-6:</b> em prvok</blockquote><blockquote><b>Obrázok 8-3:</b> Pomocou prvku em</blockquote><p>V tomto príklade kladiem dôraz na I (I) na začiatku vety. Ak sa zamyslíme nad prvkom em, keď vyslovíme vetu nahlas, zvažujeme skutočnosť, že veta je odpoveďou na otázku. Predstavte si napríklad, že som sa spýtal: „Kto má rád jablká a pomaranče? Vaša odpoveď bude: "Mám rád jablká a pomaranče." (Keď to hovoríte nahlas a kladiete dôraz na JA, dávate tým jasne najavo, že ste človek, ktorý má rád tieto plody).</p><p>Ale keby som sa spýtal: "Máš rád jablká a čo ešte?" Môžete odpovedať: "Mám rád jablká a pomaranče." V tomto prípade bude dôraz kladený na posledné slovo, zdôrazňujúc, že ​​pomaranče sú ďalším ovocím, ktoré máte radi. Táto možnosť v HTML by vyzerala takto:</p><p>Mám rád jablká a <b><em> </b> pomaranče <b></em> </b>.</p><h3>Definícia cudzích slov a odborných výrazov</h3><p>Prvok i označuje časť textu, ktorý má inú povahu ako okolitý obsah. Toto je pomerne vágna definícia, ale medzi bežné príklady patria slová z iných jazykov, technické alebo vedecké výrazy a dokonca aj ľudské myšlienky (na rozdiel od reči). Je opísaný prvok i.</p><blockquote><b>Tabuľka 8-7:</b> Prvok i</blockquote><blockquote><b>Obrázok 8-5:</b> Použitie prvku s</blockquote><br><img src='https://i2.wp.com/storage.smarly.net/html5/8.5.png' width="100%" loading=lazy loading=lazy><h3>Identifikácia dôležitého textu</h3><p>Silný prvok označuje pasáž textu, ktorá je dôležitá. Tento prvok je opísaný v.</p><blockquote><b>Tabuľka 8-9:</b> Silný prvok</blockquote><blockquote><b>Obrázok 8-7:</b> Pomocou prvku u</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.7.png' width="100%" loading=lazy loading=lazy><h3>Pridanie malého písma</h3><p>Malý prvok označuje malé písmo a často sa používa na kvalifikáciu a objasnenie. B predstavuje malý prvok.</p><blockquote><b>Tabuľka 8-11:</b> prvok malý</blockquote><blockquote><b>Obrázok 8-8:</b> Použitie malého prvku</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.8.png' width="100%" loading=lazy loading=lazy><h3>Pridanie horného a dolného indexu</h3><p>Prvky sub a sup môžete použiť na označenie horného a dolného indexu. Horný index sa používa na písanie slov v niektorých jazykoch a horný index aj dolný index sa používajú v jednoduchých matematických výrazoch. Tieto prvky sú prezentované v.</p><blockquote><b>Tabuľka 8-12:</b> Sub a sup prvky</blockquote><blockquote><b>Obrázok 8-9:</b> Pomocou prvkov sub a sup</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.9.png' width="100%" loading=lazy loading=lazy> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> <div class="single-popular"> <div class="single-popular-tit col-lg-12">Populárne v kategórii:</div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/8e694afe297762af56fa10dc9d64eb9d.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Ako vytvoriť karaoke klip na počítači?"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Ako vytvoriť karaoke klip na počítači?</div> <a href="https://5visa.ru/sk/at/sozdanie-karaoke-svoimi-rukami-kak-sozdat-karaoke-klip-na-kompyutere-eto.html" rel="bookmark" title="Ako vytvoriť karaoke klip na počítači?">čítať</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/d610310bd3744add66d0b4be4dfee6a5.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Pre hru je potrebná aplikácia Origin, ale nie je nainštalovaná. FIFA 16 vyžaduje Origin."/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Na hranie je potrebná aplikácia Origin, ale nie je nainštalovaná FIFA...</div> <a href="https://5visa.ru/sk/multimedia/prilozhenie-origin-neobhodimo-dlya-igry-no-ono-ne-ustanovleno-prilozhenie-origin.html" rel="bookmark" title="Pre hru je potrebná aplikácia Origin, ale nie je nainštalovaná. FIFA 16 vyžaduje Origin.">čítať</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/30ee436baf8151ff5b776ef4575c45ea.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Registrácia osobnej stránky na sociálnej sieti Facebook"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Registrácia osobnej stránky na sociálnej sieti Facebook</div> <a href="https://5visa.ru/sk/multimedia/zaregistrirovat-dve-stranicy-facebook-na-odin-nomer-registraciya-lichnoi.html" rel="bookmark" title="Registrácia osobnej stránky na sociálnej sieti Facebook">čítať</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/f19ca0b3b94ccf60b634700168b060f2.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Ako spustiť jednoduché skenovanie Nmap Nmap"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Ako spustiť jednoduché skenovanie Nmap Nmap</div> <a href="https://5visa.ru/sk/installation-and-configuration/setevoi-skaner-nmap-i-ego-vozmozhnosti-kak-zapustit-prostoe-skanirovanie.html" rel="bookmark" title="Ako spustiť jednoduché skenovanie Nmap Nmap">čítať</a> <div class="clr"> </div> </div> </div> <div class="clr"></div> </div> </div>  <div class="sidebar col-lg-3 col-md-4 col-sm-12"> <div class="sidebar-wrp"> <div class="sidebar-wrp-title">Najnovšie články</div> <div class="sidebar-wrp-des"> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/934317c9dc463eca8a068c72103a9d1c.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Ako otočiť obrázok o niekoľko stupňov...</div> <div class="clr"></div> <a href="https://5visa.ru/sk/internet/kak-povernut-izobrazhenie-v-vorde-i-eshche-neskolko-priemov.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/22b772bd41ea5a26bd659632075d8633.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Zakázanie reklamy v prehliadači Yandex Kde...</div> <div class="clr"></div> <a href="https://5visa.ru/sk/tips/kak-otklyuchit-blokirovku-reklamy-v-brauzere-yandeks-otklyuchenie-reklamy-v-yandeks.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/fb321d5756cb0506f3cba53b24342950.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Riešenie problémov s pripojením Wi-Fi na...</div> <div class="clr"></div> <a href="https://5visa.ru/sk/problems/shlyuz-ustanovlennyi-po-umolchaniyu-ne-dostupen-ustranenie-problem-s-wi-fi.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/adf1bbe784035fed9b433ebb2510db2f.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Zmeňte heslo v profile Windows 10</div> <div class="clr"></div> <a href="https://5visa.ru/sk/education/pomenyat-parol-na-profile-vindovs-10.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/a1f00d0e4dfd0c63b7073715f264f36a.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Pokyny na nastavenie bezdrôtových smerovačov...</div> <div class="clr"></div> <a href="https://5visa.ru/sk/at/pravilnaya-nastroika-wi-fi-routera-asus-rt-g32-instrukciya-po-nastroike.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/da305b0b628cd68b021f50a2fe2a3a89.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Ako si vybrať pevný disk a ktorý je lepšie kúpiť...</div> <div class="clr"></div> <a href="https://5visa.ru/sk/multimedia/kakaya-skorost-zhestkogo-diska-horoshaya-kak-vybrat-zhestkii-disk-i.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/470eb147f848e5af1fb8b95300372a3e.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Meizu pre figuríny. Hovory a adresár....</div> <div class="clr"></div> <a href="https://5visa.ru/sk/internet/meizu-dlya-chainikov-zvonki-i-adresnaya-kniga-storonnie-prilozheniya-dlya.html">čítať</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/7a081806d1b8bf3a3ff61c21be94541f.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Stiahnite si program PDFMaster</div> <div class="clr"></div> <a href="https://5visa.ru/sk/program/smotret-pdf-faily-skachat-programmu-pdfmaster.html">čítať</a> </div> <div class="clr"></div> </div> </div> <div id="text-4" class="widget widget_text sidebar-wrp"> <div class="textwidget"> </div> </div> <div class="clr"></div> </div> </div> </div> </div> <div id="footer"> <div class="container"> <div class="row"> <div class="footer-contacts col-lg-6 col-md-6 col-sm-12 col-xs-12"> <img src="/public/logo.png" loading=lazy loading=lazy> <div class="footer-contacts-tit">5visa.ru <br>Internet. Multimédiá. Navigátor. Vzdelávanie. BY. Firmvér. programy. Poraďte. Inštalácia</div> <div class="footer-soc"> <div class="footer-soc-wrp"> <div class="soc_w"> <a href="https://vk.com/share.php?url=https://5visa.ru/education/bobovye-html-modules-php-name-jdoc-include---metod-otobrazheniya-kontenta-na-stranice.html" class="soc-link vk" target="_blank"></a> <a href="https://www.facebook.com/sharer/sharer.php?u=https://5visa.ru/education/bobovye-html-modules-php-name-jdoc-include---metod-otobrazheniya-kontenta-na-stranice.html" class="soc-link fb" target="_blank"></a> </div> </div> </div> </div> <div class="footer-links col-lg-4 col-md-6 col-sm-12 col-xs-12"> </div> <div class="footer-links col-lg-4 col-md-4 col-sm-4 col-xs-4" style="display: block;"> <ul> <li><a href="">Edícia projektu</a></li> <li><a href="">Reklama na webovej stránke</a></li> </ul> <ul> <li><a href="https://5visa.ru/sk/feedback.html">Kontakty</a></li> <li><a href="https://5visa.ru/sk/sitemap.xml">Mapa stránok</a></li> </ul> </div> </div> </div> <div class="copyright">© 2023 Internet. Multimédiá. Navigátor. Vzdelávanie. BY. Firmvér. programy. Poraďte. Inštalácia</div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="https://5visa.ru/wp-content/themes/trudinsp/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://5visa.ru/wp-content/themes/trudinsp/js/SmoothScroll.js"></script> <a id="scroll-to-top" href="#" title="Prejdite na začiatok">Hore</a> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/jquery-smooth-scroll/js/jss-script.min.js?ver=4.8.3'></script> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect.min.js?ver=1.11.4'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect-blind.min.js?ver=1.11.4'></script> <script type='text/javascript'> /* <![CDATA[ */ var stbUserOptions = { "mode":"css","cssOptions":{ "roundedCorners":false,"mbottom":20,"imgHide":"http:\/\/5visa.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/minus.png","imgShow":"http:\/\/5visa.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/plus.png","strHide":"\u0421\u043a\u0440\u044b\u0442\u044c","strShow":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c"} }; /* ]]> */ </script> <script type='text/javascript' src='https://5visa.ru/wp-content/plugins/wp-special-textboxes/js/wstb.min.js?ver=5.5.101'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.8.3'></script> <script type="text/javascript" id="slb_context">/* <![CDATA[ */if ( !!window.jQuery ) { (function($){ $(document).ready(function(){ if ( !!window.SLB ) { { $.extend(SLB, { "context":["public","user_guest"]} );} } })} )(jQuery);} /* ]]> */</script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>