Probleme en registrement caractères spéciaux "quote"

payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 13 août 2009 à 13:02
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 14 août 2009 à 18:13
Bonjour,

J'ai un petit probleme, je suis en train de créer une interface de saisie de matériel, et dans mes champs ça bug quand j'entre un apostrophe.

Je commence par faire un INSERT INTO pour ajouter le produit dans la base, et je récupère la valeur du champs comme ceci :

$designation= trim(simplequoteencode($_POST['designation']));


simplequote est une fonction appelée au préalable :
function simplequoteencode( $Chaine )
{
  return str_replace("'","’",$Chaine);
}

(le code n'est peut etre pas correct à ce niveau là, mais après plein plein de tests, ça ne marche toujours pas.)

Et du coup dans la base, quoi que je fasse ça enregistre en brut ce que je mets dans la fonction (ici c'est "’") et quand je met une apostrophe le champs se coupe à partir de là.

Qqn peut il m'aider svp ?

Merci

5 réponses

cs_moumouf Messages postés 70 Date d'inscription lundi 3 août 2009 Statut Membre Dernière intervention 9 juillet 2011
13 août 2009 à 13:44
sinon il y a addslashes
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
13 août 2009 à 15:38
bonjour !

Dans l'enregistrement je n'ai aucnu probleme, je vois bien l'apostrophe qui apparait, c'est à la lecture des champs que ça supprime tout ce qu'il y a apres l'apostrophe.

J'ai essayé avec addslashes et stripslashes mais en vain.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
13 août 2009 à 20:25
Salut,

Utilise mysql_real_escape_string en remplacement de simplequoteencode. Si ça ne fonctionne pas fourni ton code.

Cordialement,



Kohntark -
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
14 août 2009 à 10:39
alors non je ne peux pas utiliser ça, désolé jen'ai pas précisé, j'utilise une interface ODBC

l'equivalent c'est odbc_real_escape_string ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
14 août 2009 à 18:13
Il n'y a pas d'équivalent au mysql_real_escape_string, et ce pour une bonne raison, ODBC est une interface de connection abstraite, avec de spilotes sous-jacents pour une collection de bases de données différentes, pour lesquels les chaînes d ecaractères ne se traitent pas de manière identique.

Si MySQL natif, au moins jusqu'à sa version 4.1 utilise l'antislash en tant qu ecaractère d'échappement, un MySQL 5.0 ou supérieur lancé en mode SQL-99 ANSI utilisera le doublage des simple quotes en tant qu'échapement... etc.

mysql_real_escape_string permet d erésoudre cette incohérence entre les divers modes de fonctionnement du serveur.
0
Rejoignez-nous