Nous aurons besoin de voir du code. Mon sentiment est qu'il vous manque un pas essentiel d'évasion quelque part. En particulier:
Dès que la chaîne dont le contenu « # » (essentiellement lorsque je tente de changer la couleur de la police) caractère
me Implique que vous pourriez être coller des chaînes de caractères dans une URL comme ceci:
var url= '/something.php?content='+html;
Naturellement si le html
contient un symbole #
, vous avez des problèmes, parce que:
http://www.example.com/something.php?content=<div style="color:#123456">
l'#
commence un identifiant de fragment appelé #123456">
, comme lorsque vous mettez #section
à la fin d'une URL pour aller à l'ancre dans le appelé section
fichier HTML. Les identifiants de fragment sont purement côté client et ne sont pas envoyés au serveur, qui verrait:
http://www.example.com/something.php?content=<div style="color:
Toutefois, elle est loin d'être le seul problème avec ce qui précède. Space, <
et =
sont tout à fait invalides dans les URL, et d'autres caractères comme &
vont aussi gâcher l'analyse des paramètres. Pour coder une chaîne arbitraire dans un paramètre de requête, vous devez utiliser encodeURIComponent
:
var url= '/something.php?content='+encodeURIComponent(html);
qui remplacera #
avec %35
et de même pour les autres personnages hors bande.
Cependant, si c'est effectivement ce que vous faites, vous ne devriez en aucun cas stocker quelque chose dans la base de données en réponse à une requête GET, ni s'appuyer sur un GET pour passer un contenu potentiellement important. Utilisez une demande POST à la place.
Comment allez-vous envoyer les données au serveur et à la Databa se? –
Veuillez indiquer un code pertinent dans lequel vous stockez le contenu du champ dans la base de données. –