Bonjour à tous.

Je ne sais pas réellement dans quelque catégorie poster mon soucis, mais je pense que cela vient de l'insertion au niveau de la base de donnée.
Que j'explique un peu plus en détail.
Sur mon site perso, je me suis créer un back office ( code php maison, je ne passe par aucun framework ) et j'utilise TinyMCE pour ma description lors de l'ajout d'un projet.

Lorsque j'ajoute du paragraphe Bold, ou que j'ajoute un simple titre, Tiny l'affiche correctement. Lors de l'envoi du formulaire en base de donnée, aucune balise html n'est envoyé ! Le contenu est inséré en brut. Et donc côté front office l'affiche ne se fait pas tel que je le souhaiterais ...

Après m'être rendu sur PhpMyAdmin, et avoir modifier directement le contenu en y insérant les balises html, le retour visuel côté front office se passe niquel ! Les balises h1, strong etc ... sont retournées correctement.

Je voudrais savoir s'il n'y aurait pas une fonction que je devrait ajouter pour que les balise html soient insérer lors de l'envoi du formulaire ?

Une autre chose aussi, après avoir activé la fonction force_p_newlines de TinyMCE, qui permet pour chaque retour à la ligne d'ajouter une nouvelle balise <p>, le retour visuelle ( et html ) de Tiny marche bien, je vois pour chaque retour à la ligne la fermeture et l'ajout d'une nouvelle balise <p>, mais lors de l'envoi et l'insertion en BDD, la balise <p> est remplacée directement par un </br>

Une suggestion aussi pour celà ? :D

Merci d'avance et dans l'attente de vos réponses

3 réponses


fogg
Auteur
Réponse acceptée

Après voir chercher un peu sur le forum et sur le site de PHP, j'ai trouvé la réponse à ma question !

Lorsque je récupère la variable $_POST'contenu'] je dois utiliser htmlentities

$content = strip_tags(htmlentities($_POST'content'], ENT_HTML5 , 'UTF-8'));

Ensuite lorsque je souhaite récupérer le contenu je dois le formater en entité html pour que mes balaises soient affichés correctement côté front office

$content = html_entity_decode($d->content, ENT_HTML5 , 'UTF-8');

La balise <p> est une balise de paragraphe alors que la balise </br> est un saut de ligne/retour à la ligne donc de ce côté là c'est plutôt du bon boulot.
Pour le reste je ne saurai t'aider.

fogg
Auteur

Pour la balise <p> j'aimerais justement qu'elle se finisse à chaque saut de ligne joué sur TinyMCE, c'est plus un choix personnel et aussi pour faire le même système que tu peux trouver sur WordPress ! Pour chaque saut de ligne dans Tiny, WordPress ferme et ajoute à la nouvelle ligne une balise <p>

Autrement je pourrais tout à fait mettre une simple balise </br> pour faire un retour/saut de ligne, mais encore la c'est un choix personnelle, et une petit préférence pour celui de WordPress :D

Mais merci pour ta réponse