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
3706
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