problème avec les caractères spéciaux quote/addslashes insertion MySQL

problème avec les caractères spéciaux quote/addslashes insertion MySQL - PHP - Programmation

Marsh Posté le 03-03-2014 à 17:13:24    

Bonjour à tous !  
 
alors voila mon problème :(
 
j'essaie de faire remplir à un utilisateur un commentaire libre sur une page web afin de l'insérer dans une base de données MySQL. jusque la tout va bien, mais je n'arrive pas à prendre en compte le cas où l'utilisateur voudrait saisir des caractères spéciaux, par exemple l'apostrophe :(
j'ai essayé quote de PDO et addslashes mais ça ne marche pas :(
 
pour le moment, avec ce bout de code :

Code :
  1. if(empty($commentaire))
  2. {
  3.    $commentaire='NULL';
  4. }
  5. else
  6. {
  7.    $commentaire=self::$connexion->quote($commentaire);
  8. }


 
lorsque que je tape la chaine :
 
-->l'apostrophe<--
 
j'obtiens :  
 
'l\'apostrophe'
 
Avez vous une solution a mon problème ? j'ai tout essayé.. combiner addslashes avec quote, faire des str_replace des slashs mais rien à faire :(
 
 
merci d'avance..

Reply

Marsh Posté le 03-03-2014 à 17:13:24   

Reply

Marsh Posté le 04-03-2014 à 11:10:31    

Je suis pas sûr de comprendre : c'est normal d'avoir "l\'apostrophe" écrit en base puisque le ' est le caractère de délimitation d'une chaîne en SQL.
 
Pour réafficher ce qui vient de la BD, faut faire un stripslashes() sur la chaîne extraite.
 
A noter que si le php.ini est configuré avec les magic_quotes à ON, ça rajoute déjà des "\" devant les apostrophes...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 04-03-2014 à 13:41:55    

rufo a écrit :

Je suis pas sûr de comprendre : c'est normal d'avoir "l\'apostrophe" écrit en base puisque le ' est le caractère de délimitation d'une chaîne en SQL.
 
Pour réafficher ce qui vient de la BD, faut faire un stripslashes() sur la chaîne extraite.
 
A noter que si le php.ini est configuré avec les magic_quotes à ON, ça rajoute déjà des "\" devant les apostrophes...


 
 
Intéressant !!!! je m'en vais faire des tests tout de suite :) je pense que mon problème vient de mon oublie de stripslashes :) merci beaucoup :)
 
Edit : ça marche niquel :) tu m'enlèves une épine du pied la ! merci encore !


Message édité par Benh_31 le 04-03-2014 à 13:53:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed