2010-04-29 6 views
1

J'ai fait une forme dans laquelle il y a un éditeur de texte riche. et j'essaie de stocker les données dans la base de données.
maintenant j'ai principalement deux problèmes ..Pourquoi mysql ne stocke pas de données après le caractère "#"?

1) Dès que la chaîne dont le contenu « # » (essentiellement lorsque je tente de changer la couleur de la police)         caractère, il ne stocke pas caractères après "#". et il ne mémorise pas non plus le caractère "#".

2) bien que je l'avais essayé .... javascript

html.replace("\"","'"); 

mais il ne remplace pas les guillemets doubles guillemets simples.

+0

Comment allez-vous envoyer les données au serveur et à la Databa se? –

+0

Veuillez indiquer un code pertinent dans lequel vous stockez le contenu du champ dans la base de données. –

Répondre

2

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.

1

Il semble que vous fassiez quelque chose de très étrange avec votre code de base de données. Pouvez-vous montrer le code que vous utilisez pour stocker la chaîne dans la base de données?

# - caractère est un moyen courant de créer un commentaire. C'est tout à partir de # à la fin de la ligne est mis au rebut. Cependant, si votre code pour stocker dans la base de données est correct, cela ne devrait pas avoir d'importance.

Javascript n'est pas le bon endroit pour gérer les conversions de caractères de citation. Le bon endroit pour cela est sur le côté serveur.

0

Comme vous l'avez demandé ....
J'essaie de vous rejouer ... J'essaie de parler de ce que je l'avais fait exacte ...

1) sur le côté client sur la page du formulaire html Je l'avais écrit comme ça ..

html = html.trim(); // in html, the data of the rich text editor will come. 
document.RTEDemo.action = "submit.php?method='"+ html.replace("\"","'") + "'"; 
\\ i had done replace bcz i think that was some problem with double quotes. 

maintenant submit.php, mon URL du navigateur est comme ça ...

http://localhost/nc/submit.php?method='This is very simple recipe.<br><strong style='background-color: #111111; color: #80ff00; font-size: 20px;">To make Bread Buttor you will need</strong><br><br><blockquote><ol><li>bread</li><li>buttor</li></ol></li></blockquote><span style="background-color: #00ff80;">GOOD.</span><br><br><br><blockquote><br></blockquote><br>' 


2) sur submit.php ........ Je vous écris tout simplement ce

echo "METHOD : ".$_GET['method'] . "<br><br>"; 
$method = $_GET['method']; 

maintenant ma réponse de la partie supérieure est comme ça ...

METHOD : 'This is very simple recipe. 

maintenant je veux enregistrer le détail complet de l'URL .... mais son seul stockage ...

This is very simple recipe. 
+0

Vous avez besoin de ''method =' + encodeURIComponent (html)'. Voir ma réponse pour l'explication. – bobince