2011-03-13 6 views
1

J'ai créé un site simple qui permet aux utilisateurs de partager du code où le code est enregistré dans la base de données au format HTML. par exemple.Afficher le code HTML comme code

<!DOCTYPE html> 
      <html lang="en"> 
       <head> 
        <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
        <meta name="viewport" content="width=1024"> 
        <title></title> 
       </head> 

       <body id="" class=""> 


</body> 
</html> 

Le problème que j'ai est le montrer sur le site pour les autres à voir que quand je conclurai ce que la base de données à l'intérieur crache <code><pre></pre></code> elle rend toujours le HTML et ne traite pas comme code pour afficher. J'ai lu que vous devez utiliser &gt; pour contourner ce problème, mais ce n'est pas possible car les utilisateurs partageront du code brut et ne pourront pas commencer à convertir le code en entités html comme ça! Comment puis-je réparer ça? Merci.

Voici le code du formulaire pour insérer ce dans le DB: http://pastebin.com/i3pn2AjT

et voilà comment je l'afficher actuellement: <div class="code"> <pre> <?php echo get_post_meta($posts_post_id, 'post_code', true); ?> </pre> </div>

+2

Êtes-vous échapper les caractères HTML comme ils sont insérés dans la base de données? –

+1

Non. Comment est-ce que je ferais ceci en utilisant PHP? Je vais ajouter le formulaire que j'utilise pour insérer ceci dans la base de données dans mon message original. – Cameron

+1

voir @ réponse AndrewMoore ci-dessous :) –

Répondre

7

Vous devez échapper le code HTML soit au moment de l'affichage ou au moment de l'insertion. D'après vos questions précédentes, il semble que vous utilisez PHP. Vous pouvez réaliser ceci avec htmlentities().

Par exemple:

<code><?php echo htmlentities($userSuppliedHTML, ENT_QUOTES, 'UTF-8'); ?></code> 
+0

Comment utiliser les htmlentities avec ma fonction get_post_meta qui est renvoyée? – Cameron

+0

@Cameron: Échappez-le au moment de l'insertion à la place. '$ post_code = htmlentities ($ _ POST ['post_code'], ENT_QUOTES, 'UTF-8');'. Je ne connais pas WordPress et je suis sûr que ce n'est pas une bonne idée de jouer avec leurs fonctions. –

Questions connexes