Page 1 sur 2

Affichage du texte enregisté dans une base de donnée.

Posté : 08 nov. 2008, 13:04
par mars77
Bonjour a tous,

Je viens de faire un formulaire sur mon site ou j'ai envie de pouvoir insérer des balises(gras URL ect.)

Pour cela pas de problème et l'enregistrement dans la table c'est ok.

Quand je veux afficher mon texte sur une page il m'affiche aussi les balises mais ne me transforme pas le texte en format.

Quel fonction je peux utiliser pour qu'il lise le format.
exemple:

test a la place d'afficher <b>test</b>

Merci pour votre aide

Posté : 08 nov. 2008, 13:16
par sylvaing26
donne nous le morceau de code ou tu lui demande d'afficher ton texte s'il te plait car j'ai deja fait ce systèm et ca marchait parfaitement pour moi

Posté : 08 nov. 2008, 13:43
par Aureusms
regarde vers htmlspecialchar() : http://fr.php.net/htmlspecialchars

Posté : 08 nov. 2008, 13:47
par sylvaing26
Je pense que c'est l'effet inverse de cette fonction qu'il souhaite obtenir, avec ta fonction il aura toujours ecrit <b>texte</b>
Ca doit surement venir au niveau ou tu appelle le texte de ta base dans ton code html.
Pour cela il faudra la source de ton code s'il te plait

Posté : 08 nov. 2008, 13:49
par Aureusms
Ben oui je sais. Mais si i lrentre <b>test<b> dans sa base et que le browzer internet ne le traite pas, cela veut dire qu'il y a qq part un htmlspecialchar qui protège le tout... non ?

Posté : 08 nov. 2008, 13:57
par sylvaing26
C'est pour verifier ca que je demande son code pour voir comment il fait ca

Posté : 08 nov. 2008, 13:57
par mars77
Merci déjà pour votre aide.

Voilà le code que j'utilise pour récupérer mon texte.

Code : Tout sélectionner

<?php echo "<span class='mm4'><p align='justify'>&nbsp ".htmlspecialchars ($row["message"])." </p></span> " ;?>
et le résultat à l'affichage.

<b>teste</b>

J'aimerai que mon texte vient s'afficher en gras .

Posté : 08 nov. 2008, 13:59
par Aureusms
Bien et si tu l'enlèves ?

Posté : 08 nov. 2008, 13:59
par sylvaing26
Bon ba Aureusms tu as ta reponse maintenant ! :D
Enlève ton htmlspecialchars
<?php echo "<span class='mm4'><p align='justify'>&nbsp  ".$row["message"]." </p></span> " ;?> 

Posté : 08 nov. 2008, 14:00
par Aureusms
Oui finalement je crois :lol:

Posté : 08 nov. 2008, 14:42
par mars77
J'ai enlevé le htmlspecialchars mais les balises <b> et </b> s'affichent toujours.

Posté : 08 nov. 2008, 14:48
par sylvaing26
donne nous toute ta requete stp

Posté : 08 nov. 2008, 15:58
par charabia
Laisser la possibilité de mettre du HTML dans ton formulaire est un peu beaucoup risqué mars77.

Fait plutôt un genre de bbcode si tu veux afficher du gras..etc

Posté : 09 nov. 2008, 10:56
par mars77
Hello,

J'ai essayé aussi avec du BBCode mais rien a faire cela ne fonctionne pas.

Il écrit aussi test

Je récupère mes données comme ça:

Code : Tout sélectionner

$select ='SELECT * FROM forum WHERE id = "'.$id.'"'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_array($result); $parution = delai($row ['delai']); $id1 = $row['reponse_id']; $sujet1 = $row['sujet']; ?> <!-- Cadre du centre--> <table bordercolor="CCCCCC" bgcolor="#00639C" border="1" cellspacing="0" cellpadding="0" width="480" align="center" > <tr><td><br> <table width="460" align="center" border="0" bgcolor="#FFFFFF" bordercolor="#000000" cellspacing="1" cellpadding="1"> <tr><td bgcolor="#FFFFFF" align="center" class="mm4"><a href="forumnouveau.php">Ajouter un nouveau message</a> || <a href="forum.php">Retour a la liste des messages</a></td> </tr> <!-- tableau de mise en page forum affichage--> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr bgcolor="#00639C"><td align="center" height="10"></td></tr> <tr><td align="center" bgcolor="#00639C"> <table width="480" border="0" bgcolor="#FFFFFF" bordercolor="#000000" cellspacing="1" cellpadding="1"> <tr><td bgcolor="#0099FF" align="center" valign="middle"><b>Le Message</b><br><?php echo ''.$row["smeille"].'';?> <?php echo "<span class='mm4'>".stripslashes($row["sujet"])." &nbsp Transmis par : ".stripslashes($row["pseudo"])." le, " .$parution. " ".stripslashes($row["temps"])."</span>" ;?></td></tr> <tr><td bgcolor="#000000"><table width="480" border="0" bgcolor="#FFFFFF" bordercolor="#FFFFFF" cellspacing="1" cellpadding="4" > <tr><td bgcolor="#00639C" >[color=red]<?php echo "<span class='mm4' ><p align='justify'>&nbsp ".$row["message"]." </p></span> " ;?>[/color]</td></tr> </table>
Je me demande si j'ai pas un prob. avec le format. Mes pages sont en .php ??
Merci pour votre aide

Posté : 09 nov. 2008, 11:17
par chrislabricole
Et si tu vas explorer ta table avec phpmyadmin par exemple, que vois-tu ?
Tu-dois surement voir quelque chose du genre :

Code : Tout sélectionner

<b>test</b>
Non ?

Moi je pense, que le problème ne se situe pas à la "prise" des données mais plutôt à l'enregistrement ;)

Lors de l'enregistrement, il ne faut pas faire de htmlentities(), pas de htmlspecialshars(), et pas non plus de nlbr() !
tout ça s'effectue à l'obtention des données ;)
Donc ça fais que tu vas enregistrer tes données avec les < et > et pas < et >, ça s'est transformé comme ça parce-que tu as du faire un htmlentities() ;)