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

Eléphant du PHP | 121 Messages

08 nov. 2008, 13:04

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

Mammouth du PHP | 686 Messages

08 nov. 2008, 13:16

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

ViPHP
ViPHP | 1996 Messages

08 nov. 2008, 13:43

regarde vers htmlspecialchar() : http://fr.php.net/htmlspecialchars
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 686 Messages

08 nov. 2008, 13:47

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

ViPHP
ViPHP | 1996 Messages

08 nov. 2008, 13:49

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 ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 686 Messages

08 nov. 2008, 13:57

C'est pour verifier ca que je demande son code pour voir comment il fait ca

Eléphant du PHP | 121 Messages

08 nov. 2008, 13:57

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 .

ViPHP
ViPHP | 1996 Messages

08 nov. 2008, 13:59

Bien et si tu l'enlèves ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 686 Messages

08 nov. 2008, 13:59

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> " ;?> 
Modifié en dernier par sylvaing26 le 08 nov. 2008, 14:01, modifié 1 fois.

ViPHP
ViPHP | 1996 Messages

08 nov. 2008, 14:00

Oui finalement je crois :lol:
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 121 Messages

08 nov. 2008, 14:42

J'ai enlevé le htmlspecialchars mais les balises <b> et </b> s'affichent toujours.

Mammouth du PHP | 686 Messages

08 nov. 2008, 14:48

donne nous toute ta requete stp

Avatar du membre
ViPHP
ViPHP | 3008 Messages

08 nov. 2008, 15:58

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

Eléphant du PHP | 121 Messages

09 nov. 2008, 10:56

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

Mammouth du PHP | 959 Messages

09 nov. 2008, 11:17

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() ;)