Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 17h28   #1
Invité de passage
 
Inscription : avril 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 13
Points : 3
Points : 3
Par défaut json_encode() MySQL apostrophe addslashes()

Bonjour,

Je fait un JSON a partir de mes données dans ma BD comme ceci

Code :
1
2
3
4
5
6
$req = mysql_query("SELECT ...");
$rows = array();
while($row = mysql_fetch_assoc($req)) {
$rows[] = $row;
}
$data = json_encode($rows);
Ce qui fait la même chose que ce tableau

Code :
1
2
3
4
5
6
7
8
9
$array = array(
"nom"=>utf8_encode("Mélanie"),
"prénom"=>utf8_encode("Roussillon"),
"test"=>"L\'apostrophe"
);
 
$data = json_encode($array);
 
echo $data;
Ce qui donne

Code :
{"nom":"M\u00e9lanie",null:"Roussillon","test":"L\\'apostrophe"}
Le problème c'est que je fais un addslashes a insertion des données ce qui ajoute un slash ce qui est normal mais avec json_encode() ça cause le problème d'ajout de deux slashs (L\\'apostrophe) j'ai essayer de l'enlever avec stripslashes, str_replace mais sans succès.

Savez-comment régler ce problème.

Merci
davland7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h38   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 174
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 174
Points : 8 548
Points : 8 548
Citation:
Envoyé par davland7 Voir le message
je fais un addslashes a insertion des données ce qui ajoute un slash
nop, dans ta base le slash ne doit pas y être, vérifie tes magic_quotes
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 15h16   #3
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Tiens, un petit tuyau.
Une fonction pour protéger tes données quand tu veux les insérer dans ta base :

Code :
1
2
3
4
5
6
7
8
9
10
fonction protect($value){
  if (get_magic_quotes_gpc()) { // si on a get_magic_quotes_gpc, alors on stripslash les values en entrée
    $value = stripslashes($value);
  }
// on quote si c'est pas du numérique
  if (!is_numeric($value)) {
    $value = "'" . mysql_real_escape_string($value) . "'";
  }
  return $value;
}
Après, chacun en fait ce qu'il veut !

Et comme dit ci-dessus : pas d'addslashes....
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 00h51   #4
Invité de passage
 
Inscription : avril 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 13
Points : 3
Points : 3
Merci, si je comprend bien les magic quotes ajoute les \ au apostrophe et avec mes addslashes je les ajoutes en double, alors il serai mieux pour moi que je les désactives.
davland7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 15h02   #5
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Citation:
Envoyé par davland7 Voir le message
Merci, si je comprend bien les magic quotes ajoute les \ au apostrophe et avec mes addslashes je les ajoutes en double, alors il serai mieux pour moi que je les désactives.
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h57.


 
 
 
 
Partenaires

Hébergement Web