Nom php des modules HTML des beans. Jdoc:include - méthode d'affichage du contenu sur la page. Ajout de simples barres obliques

Nous avons brièvement abordé le sujet des méthodes d'affichage du contenu dans le corps d'un modèle. Voyons maintenant de plus près ce que c'est et avec quoi on le mange. Donc, les déclarations de méthode jdoc est présent dans chaque modèle Joomla et afficher telle ou telle information dans le corps du modèle (c'est-à-dire sur la page du site). En général, la déclaration de la méthode ressemble à ceci :

Cette ligne affiche les informations des composants du site, par exemple les articles de com_content. Le type des éléments de sortie est spécifié dans l'attribut.

1. type - types d'éléments de sortie.

  • composant- comme je l'ai écrit ci-dessus, affiche le contenu principal de la page. Ne peut être appelé qu’une seule fois par modèle.
  • tête- est également annoncé une fois après la balise d'ouverture . Sert à afficher des styles, des scripts, et les métadonnées de la page actuelle.</li><li><i>message</i><i>- </i> affiche les messages du système. Déclaré une fois dans le corps du document.</li><li><i>installation</i>- n'affiche rien et constitue une « instruction » pour l'installation.</li><li><i>module-</i> affiche un seul module sur la page. Le nombre d'annonces est illimité.</li><li><i>modules</i>- contrairement au type précédent, il permet d'afficher plus d'un seul nombre de modules à sa position.</li> </ul><p>Pour les quatre premiers types listés, il vous suffit de les indiquer sur la page. Dans le cas du type module, la tâche devient un peu plus compliquée. Afin d'afficher un module sur la page, nous devons d'abord créer un module pour celui-ci <b>poste modulaire</b> avec un identifiant unique (nom de position du module). Cela se fait à l'aide de l'attribut name="position name" et de l'ajout obligatoire de la ligne :</p><p> <position>nom du poste</position> au fichier templateDetails.xml. En décrivant le nom du poste dans templateDetails.xml, nous le désignons dans le système et le voyons dans le gestionnaire de modules. Les noms des positions peuvent être arbitraires, bien que la position name = "user3" soit utilisée par défaut pour afficher le menu supérieur.</p><p><b>2. style - description du style de sortie (mod chrome).</b></p> <p>Dépend du style spécifié <a href="https://5visa.ru/fr/multimedia/raskladnoi-planshet-lenovo-folio-predstavila-skladnoi-planshet-i-smartfon.html">apparence</a> et la structure de la coque du module. Ressemble à</p><p> :<jdoc:include type="modules" name="user1" style="xhtml" />Par défaut, il existe plusieurs styles de sortie de module :</p><ul><li><i>xhtml-</i> affiche le module dans un bloc avec la fonction titre 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->titre d'affichage != 0) : ?> <br> <h3><?php echo $module->titre; ?></h3><br> <?php endif; ?><br> <?php echo $module->contenu; ?> <br> </div><br> <?php endif;<br>}</li><li><i>tableau -</i> affiche le module dans une disposition de structure de table <br>fonction 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->titre d'affichage != 0) : ?> <br> <tr><br> <th><br> <?php echo $module->titre; ?> <br> </th><br> </tr><br> <?php endif; ?><br> <tr><br> <td><br> <?php echo $module->contenu; ?> <br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>Horz -</i> affiche le contenu d'un module dans une cellule du tableau, fonction horizontalement 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>arrondi</i>- affiche le module en plusieurs blocs imbriqués pour un style complexe sous forme de bordures graphiques (par exemple coins arrondis) fonction 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->titre d'affichage != 0) : ?> <br> <h3><?php echo $module->titre; ?></h3><br> <?php endif; ?><br> <?php echo $module->contenu; ?> <br> </div><br> </div><br> </div><br> </div><br> <?php<br>}</li><li><i>contour</i>- ajoute des styles CSS prédéfinis à la fonction de bloc de module modChrome_outline($module, &$params, &$attribs) <br>{<br>statique $css=false ; <br>si ($css) <br> {<br>$css=vrai ; <br>jimport("joomla.environment.browser"); <br>$doc = JFactory::getDocument(); <br>$browser = JBrowser::getInstance(); <br>$doc->addStyleDeclaration(".mod-preview-info ( remplissage : 2px 4px 2px 4px ; bordure : 1px noir uni ; position : absolue ; couleur d'arrière-plan : blanc ; couleur : rouge ;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper ( background-color:#eee; border: 1px pointillé noir; color:#700;)"); <br>si ($browser->getBrowser()=="msie") <br> {<br>si ($navigateur->getMajor()<= 7) {<br>$doc->addStyleDeclaration(".mod-preview-info (filtre : alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (filtre : alpha(opacity=50);)"); <br> } <br>autre( <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>autre <br> {<br>$doc->addStyleDeclaration(".mod-preview-info (opacité : 0.8;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (opacité : 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->contenu; ?> <br> </div><br> </div><br> <?php<br>}</li><li><i>aucun</i>- similaire au style non spécifié du tout. Affiche un module sans fonction de conception et de titre modChrome_none($module, &$params, &$attribs) <br>{<br>echo $module->content; <br>}</li> </ul><p>Tous les styles prédéfinis se trouvent dans le fichier templates/system/html/modules.php. Mais nous ne sommes pas limités à utiliser uniquement les options proposées, mais sommes tout à fait capables de créer les nôtres.</p> <p><b>3. Créez un mode Chrome personnalisé.</b></p> <p><b><br></b> Ainsi, les types de représentation de module par défaut fournis ne répondent pas aux exigences actuelles. Vous devez ajouter votre propre style de conception. A titre d’exemple, choisissons une situation assez fréquemment répétée. Selon la mission, au lieu de <h3>mettre le titre du module dans la balise <span>, qui est sémantiquement neutre. Vous devez également placer le bloc de contenu du module dans un emplacement séparé <div>. Pour créer votre propre style de sortie de module, nous utiliserons des outils standard. La plupart des modèles Joomla ont un dossier html/ (templates/template name/html/), qui est utilisé pour ce qu'on appelle les modèles. Autrement dit, si vous copiez un modèle de module dans ce dossier, au lieu du modèle du répertoire modules/my_module/tmpl/default, le fichier de templates/template name/html/my_modules/default sera affiché. Les composants sont modélisés de la même manière. Pratique et pratique. Dans le dossier html/ de votre template, créez un fichier modules.php. S'il n'y a pas de dossier de ce type dans le modèle, nous le créerons. Écrivons-le dans un fichier</p><p> <?php<br>function modChrome_modbox($module, &$params, &$attribs) // Appel de la fonction <br>{<br>if (!empty ($module->content)) : /* Vérifiez si la position contient un module activé */?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); /* affiche le suffixe CSS de la classe du module */ ?>"> <br> <?php if ($module->showtitle != 0) : /* vérifier si le titre du module est inclus */ ?> <br> <span class="title"><?php echo $module->titre; /* Imprimer le titre */ ?></span><br> <?php endif; ?><br> <div class="modcontent"><br> <?php echo $module->contenu; /* Afficher le contenu du module */ ?> <br> </div><br> </div><br> <?php endif;<br>} <br>?> Terminé. Il ne vous reste plus qu'à le spécifier comme style de sortie. <jdoc:include type="modules" name="user1" style="modbox"/>Nous attribuons un module à notre position et regardons le résultat.</p> <p>L'un des avantages de PHP est la façon dont il fonctionne avec les formulaires HTML. L'essentiel ici est que chaque élément du formulaire devienne automatiquement disponible pour vos programmes PHP. Pour des informations détaillées sur l'utilisation des formulaires en PHP, lisez la section. Voici un exemple de formulaire HTML :</p> <p><b>Exemple n°1 Formulaire HTML le plus simple</b></p> <p><form action="action.php" method="post"> <p>Votre nom: <input type="text" name="name" /></p> <p>Votre âge: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form></p> <p>Il n'y a rien de spécial dans ce formulaire. Il s'agit d'un formulaire HTML standard sans balises spéciales. Lorsque l'utilisateur remplit le formulaire et clique sur le bouton Soumettre, la page action.php sera appelée. Ce fichier pourrait ressembler à quelque chose comme :</p> <p><b>Exemple #2 Afficher les données du formulaire</b></p> <p>Bonjour,<?php echo htmlspecialchars ($_POST [ "name" ]); ?> .<br>Pour vous<?php echo (int) $_POST [ "age" ]; ?>années.</p> <p>Exemple de sortie de ce programme :</p> <p>Bonjour Sergueï. Vous avez 30 ans.</p> <p>Si vous ne tenez pas compte des morceaux de code avec <span>htmlspecialchars()</span> Et <i>(int)</i>, le principe de fonctionnement de ce code doit être simple et compréhensible. <span>htmlspecialchars()</span> Garantit que les caractères HTML « spéciaux » sont correctement codés afin qu’aucun code HTML ou Javascript malveillant ne soit inséré dans votre page. Le champ d'âge, dont nous savons qu'il doit être un nombre, peut simplement être converti en <span>entier</span>, qui supprimera automatiquement les caractères indésirables. PHP peut également le faire automatiquement en utilisant l'extension de filtre. Les variables $_POST["name"] et $_POST["age"] sont automatiquement définies pour vous par PHP. Auparavant, nous utilisions la variable superglobale $_SERVER, mais ici nous utilisons également la variable superglobale $_POST, qui contient toutes les données POST. remarquerez que <i>méthode d'envoi</i>(méthode) de notre formulaire est POST. Si nous utilisions la méthode <i>OBTENIR</i>, alors nos informations de formulaire seraient dans la variable superglobale $_GET . Vous pouvez également utiliser la variable $_REQUEST si la source de données n'a pas d'importance. Cette variable contient un mélange de données GET, POST, COOKIE.</p> <p><b>il y a 15 ans</b></p> <p>Selon la spécification HTTP, vous devez utiliser la méthode POST lorsque vous utilisez le formulaire pour modifier l'état de quelque chose du côté du serveur. Par exemple, si une page dispose d'un formulaire permettant aux utilisateurs d'ajouter leurs propres commentaires, comme celui-ci page ici, le formulaire doit utiliser POST. Si vous cliquez sur "Recharger" ou "Actualiser" sur une page que vous avez atteinte via un POST, c'est presque toujours une erreur - vous ne devriez pas publier deux fois le même commentaire - c'est pourquoi ces pages ne sont ni mises en signet ni mises en cache.</p><p>Vous devez utiliser la méthode GET lorsque votre formulaire récupère quelque chose du serveur et ne change rien. Par exemple, le formulaire d'un moteur de recherche doit utiliser GET, car la recherche sur un site Web ne doit rien changer qui puisse intéresser le client, et la mise en signet ou la mise en cache des résultats d'une requête d'un moteur de recherche est tout aussi utile que la mise en signet ou la mise en cache. une page HTML statique.</p> <p><b>il y a 2 ans</b></p> <p>A préciser :</p><p>POST n'est pas plus sécurisé que GET.</p><p>Les raisons de choisir GET ou POST impliquent divers facteurs tels que l'intention de la requête (est-ce que vous « soumettez » des informations ?), la taille de la requête (il y a des limites à la longueur d'une URL et les paramètres GET sont envoyés). l'URL) et la facilité avec laquelle vous souhaitez que l'action soit partageable. Par exemple, les recherches Google sont GET car elles facilitent la copie et le partage de la requête de recherche avec quelqu'un d'autre simplement en partageant l'URL.</p><p>La sécurité n'est ici qu'une considération en raison du fait qu'un GET est plus facile à partager qu'un POST. Exemple : vous ne souhaitez pas qu'un mot de passe soit envoyé par GET, car l'utilisateur pourrait partager l'URL résultante et exposer par inadvertance son mot de passe.</p><p>Cependant, un GET et un POST sont tout aussi faciles à intercepter par une personne malveillante bien placée si vous ne déployez pas TLS/SSL pour protéger la connexion réseau elle-même.</p><p>Tous les formulaires envoyés via HTTP (généralement le port 80) ne sont pas sécurisés et aujourd'hui (2017), il n'y a pas beaucoup de bonnes raisons pour qu'un site Web public n'utilise pas HTTPS (qui est essentiellement HTTP + Transport Layer Security).</p><p>En prime, si vous utilisez TLS, vous minimisez le risque que vos utilisateurs reçoivent du code (AD) injecté dans votre trafic qui n'y a pas été mis par vous.</p> <p>Il s'agit d'une vulnérabilité courante de la classe incluant PHP. Mais la personne pour qui j'ai fait l'audit m'a dit que cette vulnérabilité n'est pas exploitable, donc ça ne compte pas. J'ai dû discuter avec lui</p> <h2>Qu'est-ce que PHP-include</h2> <p>Menons un petit programme éducatif sur cette vulnérabilité. PHP-include est une vulnérabilité qui permet « d'inclure » un fichier arbitraire, par exemple ce code :</p> <p>$module=$_REQUEST["module"]; include("modules/".$module);</p> <p>Et comme il n’y a généralement pas de balises PHP dans le fichier « /etc/passwd » (<?php и?>), il sera alors affiché dans le navigateur, tout comme le code html serait affiché derrière les balises php dans un script php classique. Bien entendu, la lecture de fichiers n’est qu’une des implémentations possibles de cette attaque. L'essentiel est d'inclure les fichiers nécessaires avec le code PHP nécessaire.</p> <p>Revenons à l'exemple. Compliquons les choses :</p> <p>$module=$_REQUEST["module"]; 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 = $_REQUEST [ "module" ] ;</p><p>include ("modules/" . $module . "/module.class.php" ) ;</p> </td> </tr></table><p>Comme vous pouvez le constater, une ligne est désormais ajoutée à notre variable à la fin, ce qui nous empêche d'inclure un quelconque fichier. Ainsi, de nombreuses fonctions PHP ne sont pas binaires, c'est-à-dire que ces fonctions considèrent un octet NULL comme la fin d'une chaîne. On accède au script comme ceci :</p> <p>script.php?module=../../../../../../../../../../../etc/passwd%00</p> <p>Et si la directive magic_quotes est désactivée, alors nous reverrons le contenu de /etc/passwd</p> <h2>Y a-t-il une vulnérabilité ?</h2> <p>Revenons à notre code :</p> <p>$module=addslashes($_REQUEST["module"]); 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 = ajoute des barres obliques ($_REQUEST [ "module" ] ) ;</p><p>include ("modules/" . $module . "/module.class.php" ) ;</p> </td> </tr></table><p>Comme vous pouvez le constater, notre variable est obligée de passer par des « addslashes » et si nous essayons d'utiliser un octet NULL, il sera converti en « \0 » et l'inclusion ne fonctionnera pas.</p> <p>Mais les progrès ne s’arrêtent pas ! Il s'avère que certains gars d'USH ont trouvé une fonctionnalité intéressante dans PHP : les vecteurs d'attaque du système de fichiers PHP (anglais). Pour résumer brièvement l'essentiel de l'article, php traite les chemins en utilisant plusieurs fonctionnalités :</p> <ul><li><b>Troncation du chemin</b>- php tronque la chaîne de chemin à la longueur spécifiée MAXPATHLEN (sous Windows jusqu'à 270 caractères, sous NIX - généralement 4096, sous BSD - généralement 1024)</li> <li><b>Normalisation du chemin</b>— php traite le chemin d'une manière spéciale, en supprimant les caractères supplémentaires «/» et «/». et leurs diverses combinaisons</li> <li><b>Réduction à la forme canonique</b>— les transitions inutiles sont supprimées, par exemple, « dir1/dir2/../dir3 » est converti en « dir1/dir3/ » alors que l'existence du répertoire « dir2 » n'est pas vérifiée, et d'autres transformations similaires (c'est-à-dire poursuite de la normalisation )</li> </ul><p>Maintenant, dans l’ordre, qu’arrive-t-il au chemin parcouru :</p> <ol><li>Si le chemin est relatif, alors les valeurs de la directive include_path sont d'abord remplacées</li> <li>Le chemin est ensuite coupé à une certaine longueur en fonction de la plateforme</li> <li>Le chemin est en train d'être normalisé</li> <li>Le chemin est réduit à la forme canonique</li> </ol><p>Essayons maintenant de l'utiliser. Essayons d'inclure un certain fichier « test.php » qui se trouve dans le répertoire « modules/ ». Pour ce faire, ajoutez le symbole « / » à la fin. de sorte que la longueur totale, ainsi que le nom du fichier et la valeur de include_path, sont évidemment supérieures à 4 096 caractères. <br>script.php?module=test.php/././.[...]/././.</p> <p>Dans ce cas, vous devez deviner pour que toute la chaîne du chemin (déjà coupée) se termine par un point (important !), et non par une barre oblique. Pour ce faire, vous pouvez ajouter une barre oblique comme ceci : <br></p> <p>Et l'une de ces options fonctionnera certainement.</p> <h2>en cours d'analyse</h2> <p>Regardons dans l'ordre quelles transformations se produiront sur le chemin <br>modules/test.php//././.[...]/./././module.class.php <br><i>4200 caractères</i> </p> <p>La première chose qui arrive à la ligne est que la valeur de include_path y est ajoutée : <br>/home/site/public_html/modules/test.php//././.[...]/./././module.class.php <br><i>4223 caractères</i> </p> <p>La chaîne est ensuite tronquée à MAXPATHLEN (disons 4096) : <br>/home/site/public_html/modules/test.php//././.[...]/./. <br><i>4096 caractères</i> </p> <p>Ici vous pouvez voir pourquoi il a été nécessaire d'ajouter une autre barre oblique (sinon la ligne aurait été coupée jusqu'à la barre oblique). Maintenant, cette ligne est normalisée, en supprimant d'abord les barres obliques supplémentaires : <br>/home/site/public_html/modules/test.php/././.[...]/./. <br><i>4095 caractères</i> </p> <p>En conséquence, nous obtenons le chemin correct vers le fichier dont nous avons besoin, et ce chemin sera déjà transféré vers l'inclusion, et le fichier dont nous avons besoin sera inclus.</p> <p>Autrement dit, c’est ainsi que nous inclurons avec succès notre fichier « test.php ». <br>script.php?module=test.php//././.[...]/././.</p> <p>Cela signifie que la vulnérabilité n’est pas théorique. En conséquence, mon client a perdu le pari et j'ai gagné le pari ainsi que les 10 roubles sur lesquels nous parions. Bien sûr, en plus de 10 roubles, j'ai également gagné la confiance et le respect aux yeux du client, ce qui est également important.</p> <h2>Remarques</h2> <p>Ici, je vais examiner quelques fonctionnalités intéressantes d’exploitation de cette vulnérabilité.</p> <h3>Quitter le répertoire</h3> <p>Considérez ce code :</p> <p> ) ; </p> <p>Ignorons le point selon lequel vous pouvez utiliser RFI et inclure un fichier provenant d'un serveur distant. Disons « allow_url_include=OFF » sur le serveur.</p> <p>Considérons une situation dans laquelle nous devons inclure un fichier du répertoire ci-dessous : <br>script.php?module=../test.php/././.[...]/././.</p> <p>Une telle demande générera une erreur telle que fichier introuvable. Et pour contourner ce problème, nous devons l’appeler ainsi : <br>script.php?module=blabla/../../test.php/././.[...]/././.</p> <p>Ce n'est pas en vain que j'ai décrit la canonisation des chemins. Grâce à lui, le répertoire « blabla » n'est pas obligé d'exister.</p> <h3>Ajout de simples barres obliques</h3> <p>Un lecteur attentif a probablement remarqué que dans la description de la normalisation, j'ai écrit que les barres obliques supplémentaires « / » et les points avec des barres obliques « / » sont supprimés, alors pourquoi ne pas simplement utiliser des barres obliques afin d'éviter des tracas inutiles avec le point se terminant à la fin.</p> <p>Tout est question d'algorithmes, c'est-à-dire d'une barre oblique avec un point « / ». est complètement supprimé. Mais avec de simples barres obliques, la situation est un peu plus compliquée : lors de la normalisation, toutes les deux barres obliques sont remplacées par une jusqu'à ce qu'il ne reste plus qu'une (!) barre oblique, exemple :</p><p>/accueil/site/public_html/modules/test.php/////////////////// <br><i>57 caractères</i> <br> ↓<br>/accueil/site/public_html/modules/test.php///////// <br><i>48 caractères</i> <br> ↓<br>/accueil/site/public_html/modules/test.php///// <br><i>44 caractères</i> <br> ↓<br>/accueil/site/public_html/modules/test.php/// <br><i>42 caractères</i> <br> ↓<br>/home/site/public_html/modules/test.php// <br><i>41 caractères</i> <br> ↓<br>/home/site/public_html/modules/test.php/ <br><i>40 caractères</i> </p> <h3><b>Une petite parenthèse :</b></h3> <p>De plus, si vous prêtez attention à de nombreuses ressources de hack populaires, vous remarquerez cette erreur. Si je comprends bien, cette erreur a commencé par un article d'un certain Raz0r où il proposait un vecteur : <br>index.php?act=../../../../../etc/passwd/////[…]/////</p> <p>Et faites attention même au magazine ][aker a répété cette erreur dans son article. De plus, même dans l'article USH original, il était clairement écrit qu'il n'est pas conseillé d'utiliser uniquement des barres obliques, et qu'il est nécessaire de laisser un point à la fin avant la normalisation. Mais les barres obliques simples (même sans point à la fin) ne fonctionnent qu'en PHP avec Suhosin.</p> <p>Autrement dit, utilisez une barre oblique avec un point « / ». - une méthode plus universelle, puisque contrairement aux slashes « / », elle fonctionne pour toutes les versions de php.</p> <h2>Conclusion</h2> <p>J'espère que cet article vous aidera à comprendre que vous ne devez pas laisser la moindre vulnérabilité dans vos scripts, car tôt ou tard, vous pourrez développer votre propre vecteur d'attaque pour eux, ce qui peut entraîner de graves conséquences.</p> <p>L'élément em représente un passage de texte avec emphase. Vous pouvez l'utiliser pour attirer l'attention du lecteur sur le sens d'une phrase ou d'un paragraphe. Je vais vous dire ce que cela signifie après le , qui décrit l'élément em.</p><blockquote><b>Tableau 8-6 :</b>élément em</blockquote><blockquote><b>Figure 8-3 :</b> Utilisation de l'élément em</blockquote><p>Dans cet exemple, je mets l'accent sur I (I) au début de la phrase. Si nous pensons à l'élément em, lorsque nous prononçons une phrase à voix haute, nous considérons le fait que la phrase est une réponse à une question. Par exemple, imaginez que je demande : « Qui aime les pommes et les oranges ? Votre réponse sera : « J’aime les pommes et les oranges. » (Lorsque vous dites cela à voix haute et que vous mettez l'accent sur je, vous indiquez clairement que vous êtes une personne qui aime ces fruits).</p><p>Mais si je demandais : « Aimez-vous les pommes et quoi d'autre ? Vous pourriez répondre : « J’aime les pommes et les oranges. » Dans ce cas, l'accent sera mis sur le dernier mot, en soulignant que les oranges sont un autre fruit que vous aimez. Cette option en HTML ressemblerait à ceci :</p><p>J'aime les pommes et <b><em> </b> des oranges <b></em> </b>.</p><h3>Définition de mots étrangers et de termes techniques</h3><p>L'élément i désigne un morceau de texte de nature différente du contenu environnant. Il s'agit d'une définition assez vague, mais des exemples courants incluent des mots provenant d'autres langues, des termes techniques ou scientifiques et même des pensées humaines (par opposition à la parole). L'élément i est décrit.</p><blockquote><b>Tableau 8-7 :</b>Élément je</blockquote><blockquote><b>Figure 8-5 :</b> Utiliser l'élément s</blockquote><br><img src='https://i2.wp.com/storage.smarly.net/html5/8.5.png' width="100%" loading=lazy loading=lazy><h3>Identifier un texte important</h3><p>L’élément fort désigne un passage de texte important. Cet élément est décrit dans.</p><blockquote><b>Tableau 8-9 :</b>Élément fort</blockquote><blockquote><b>Figure 8-7 :</b> Utiliser l'élément u</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.7.png' width="100%" loading=lazy loading=lazy><h3>Ajout d'une petite police</h3><p>Le petit élément désigne une petite police et est souvent utilisé pour des qualifications et des clarifications. B représente le petit élément.</p><blockquote><b>Tableau 8-11 :</b>élément petit</blockquote><blockquote><b>Figure 8-8 :</b> Utiliser le petit élément</blockquote><br><img src='https://i1.wp.com/storage.smarly.net/html5/8.8.png' width="100%" loading=lazy loading=lazy><h3>Ajouter un exposant et un indice</h3><p>Vous pouvez utiliser les éléments sub et sup pour désigner respectivement l'exposant et l'indice. Les exposants sont utilisés pour écrire des mots dans certaines langues, et l'exposant et l'indice sont utilisés dans des expressions mathématiques simples. Ces éléments sont présentés dans.</p><blockquote><b>Tableau 8-12 :</b>Éléments sous et sup</blockquote><blockquote><b>Figure 8-9 :</b> Utiliser les éléments sub et 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">Populaire dans la catégorie :</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="Comment créer un clip karaoké sur un ordinateur ?"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Comment créer un clip karaoké sur un ordinateur ?</div> <a href="https://5visa.ru/fr/at/sozdanie-karaoke-svoimi-rukami-kak-sozdat-karaoke-klip-na-kompyutere-eto.html" rel="bookmark" title="Comment créer un clip karaoké sur un ordinateur ?">lire</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="L'application Origin est requise pour le jeu, mais elle n'est pas installée. FIFA 16 nécessite Origin."/ loading=lazy loading=lazy> <div class="single-popular-item-tit">L'application Origin est nécessaire pour jouer, mais elle n'est pas installée FIFA...</div> <a href="https://5visa.ru/fr/multimedia/prilozhenie-origin-neobhodimo-dlya-igry-no-ono-ne-ustanovleno-prilozhenie-origin.html" rel="bookmark" title="L'application Origin est requise pour le jeu, mais elle n'est pas installée. FIFA 16 nécessite Origin.">lire</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="Enregistrement d'une page personnelle sur le réseau social Facebook"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Enregistrement d'une page personnelle sur le réseau social Facebook</div> <a href="https://5visa.ru/fr/multimedia/zaregistrirovat-dve-stranicy-facebook-na-odin-nomer-registraciya-lichnoi.html" rel="bookmark" title="Enregistrement d'une page personnelle sur le réseau social Facebook">lire</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="Comment exécuter une simple analyse Nmap Nmap"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Comment exécuter une simple analyse Nmap Nmap</div> <a href="https://5visa.ru/fr/installation-and-configuration/setevoi-skaner-nmap-i-ego-vozmozhnosti-kak-zapustit-prostoe-skanirovanie.html" rel="bookmark" title="Comment exécuter une simple analyse Nmap Nmap">lire</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">Derniers articles</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">Comment faire pivoter une image de quelques degrés...</div> <div class="clr"></div> <a href="https://5visa.ru/fr/internet/kak-povernut-izobrazhenie-v-vorde-i-eshche-neskolko-priemov.html">lire</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">Désactivation de la publicité dans le navigateur Yandex Où...</div> <div class="clr"></div> <a href="https://5visa.ru/fr/tips/kak-otklyuchit-blokirovku-reklamy-v-brauzere-yandeks-otklyuchenie-reklamy-v-yandeks.html">lire</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">Dépannage des problèmes de connexion Wi-Fi sur...</div> <div class="clr"></div> <a href="https://5visa.ru/fr/problems/shlyuz-ustanovlennyi-po-umolchaniyu-ne-dostupen-ustranenie-problem-s-wi-fi.html">lire</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">Changer le mot de passe sur le profil Windows 10</div> <div class="clr"></div> <a href="https://5visa.ru/fr/education/pomenyat-parol-na-profile-vindovs-10.html">lire</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">Instructions pour configurer des routeurs sans fil...</div> <div class="clr"></div> <a href="https://5visa.ru/fr/at/pravilnaya-nastroika-wi-fi-routera-asus-rt-g32-instrukciya-po-nastroike.html">lire</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">Comment choisir un disque dur et lequel est-il préférable d'acheter...</div> <div class="clr"></div> <a href="https://5visa.ru/fr/multimedia/kakaya-skorost-zhestkogo-diska-horoshaya-kak-vybrat-zhestkii-disk-i.html">lire</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 pour les nuls. Appels et carnet d'adresses....</div> <div class="clr"></div> <a href="https://5visa.ru/fr/internet/meizu-dlya-chainikov-zvonki-i-adresnaya-kniga-storonnie-prilozheniya-dlya.html">lire</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">Télécharger le programme PDFMaster</div> <div class="clr"></div> <a href="https://5visa.ru/fr/program/smotret-pdf-faily-skachat-programmu-pdfmaster.html">lire</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>L'Internet. Multimédia. Navigateur. Éducation. PAR. Micrologiciel. Programmes. Conseils. Installation</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="">Édition du projet</a></li> <li><a href="">Publicité sur le site Internet</a></li> </ul> <ul> <li><a href="https://5visa.ru/fr/feedback.html">Contacts</a></li> <li><a href="https://5visa.ru/fr/sitemap.xml">Plan du site</a></li> </ul> </div> </div> </div> <div class="copyright">© 2024 Internet. Multimédia. Navigateur. Éducation. PAR. Micrologiciel. Programmes. Conseils. Installation</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="Faire défiler vers le haut">Haut</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>