Bonjour, je viens de m'apercevoir que j'ai un bug sur lors de l'envoie de mon message sous Ckeditor. En faite, il marche bien, que si je ne rentre pas de &. Dès que je rentre une phrase quelconque du style : "Bienvenue à machin & truc & bidule & etc..." Ça affichera que "Bienvenue à machin" le reste ne s’affichera pas, du coup il ne ferme même pas les balises, si j'utilise par exemple du gras, ce qui me donnera :

<strong>Bienvenue à machin

au lieu de :

<strong>Bienvenue à machin & truc & bidule & etc...</strong>

Donc, tout ce qui est en dessous du formulaire, sera en gras, parce la balise n'est pas fermer. En l'occurrence pour moi, mon pied de page, est en gras, donc c'est moche !!

J'ai tout essayé..., mais sans succès :

Page de traitement

<?php
if(isset($_POST'message']) && !empty($_POST'message']))
{
$message = htmlEntities($_POST'message']); //htmlspecialchars
//Insert into
}
?>

Page ou j'affiche

<?php
$message = $req_texte_association'texte_fiche'];
echo nl2br($message);
?>

J'ai même essayé le str_replace :

$message = str_replace("&", "&", "$message");

Pourquoi ça fait buger le message avec uniquement le caractère &?

Merci, d'avance.

4 réponses


Xen0risDEV
Réponse acceptée

Je te conseil d'utilisé : TinyMCE :)

Xen0risDEV
Réponse acceptée

Bonjour,

tinyMCE.init({
        // General options
        mode : "textareas",
});

<form action="#" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <label for="content">Contenu de la réalisation</label>
            <textarea name="content" id="content" cols="30" rows="10"></textarea>
        </div>
        <button class="btn btn-success" type="submit">Envoyez</button>
    </form>
    <?php
    var_dump($_POST'content']);
    ?>

Merci à vous, je viens d'installé cet éditeur, mais je ne trouve pas dans la documentation comment récupérer le contenu du message, je traite avec ajax, c'est pour ça. Par exemple avec Ckeditor, c'est :

CKEDITOR.instances.message.getData()

Merci, encore.

Bonjour, je viens de réussir.

if ( tinymce.get('message').getContent().length == 0 ) //Si c'est vide
{
$(".Div_message").text("Vous n'avez pas remplis le champ message");
$(".Div_message").css("color", "red");
return false;
}
else { //Sinon
var message = tinymce.get('message').getContent()
...
}

Mais par contre, idem, ça ne fonctionne toujours pas si je rentre un &... mais je garde cette éditeur, il me parait beaucoup mieux.
Des solutions ? Merci.

EDIT :
Je viens de trouvé après pas mal de recherche, c'était un problème d'encodage, cela venait de ajax qui ne transmettrai pas les caractères spéciaux, c'est maintenant résolu avec :

var message = encodeURIComponent(tinymce.get('message').getContent())

Merci à vous.