Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
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 22/06/2006, 20h10   #1
Membre confirmé
 
Avatar de diaboloche
 
Inscription : novembre 2004
Messages : 583
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2004
Messages : 583
Points : 229
Points : 229
Par défaut [Configuration] str_replace ?

Bonjour,

J'ai un problème...
J'effectue une requête SQL d'ajout sur une table. Une variable contenue dans cette requête peut contenir le symbole " ' ". Je dois donc précédent ' de \.
Pour ceci j'effectue un string replace :

Code :
1
2
 
$message=str_replace("'","\'",$message);
Cela marche très bien en local...

Lorsque je mets cela en ligne, cela ne fonctionne plus.
J'ai donc fait afficher les valeurs en ligne et en local pour voir la différence.

Si $message contient la simple valeur ' l'affichage est :

En local :
Ok... tout à fait normal

En ligne :
Plus normal du tout... pourquoi mettre 2 slashs ? L'erreur vient de là... le premier \ m'autorise le second.. et ne couvre plus mon apostrophe...

J'affiche donc en ligne le contenu de la variable sans aucune manipulation et je m'aperçois qu'il m'ajoute tout seul le \...

Pourquoi ? Et comment ? J'aimerais comprendre ce qui se passe...
__________________
while(1)printf("BUG");
diaboloche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 20h20   #2
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
oula

pourquoi n'utilises-tu pas les fonctions prévues pour ça ?

mysql_real_escape_string() ou addslashes() pour insérer dans la BDD

et stripslashes() pour afficher les données extraites dans la page


sinon ton problème est connu, trés certainement une différence de positionnement de la directive magic_quote_gpc dans le php.ini

fais une recherche dans le forum, tu trouveras ton bonheur...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 20h25   #3
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
tu as les magicquotes d'activées sur ton site en ligne, et pas en local, voila tout

en gros, en local tu as besoin d'ajouter manuellement ton truc, et pas en ligne.
tu peux faire une fonction qui détecte l'état de magicquotes et donc ajoute ou pas le \.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 20h44   #4
Membre actif
 
Avatar de nicolas.pied
 
Inscription : janvier 2005
Messages : 244
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2005
Messages : 244
Points : 161
Points : 161
C'est bien les magicquotes. Si tu veux avoir la même configuration en local, ouvres ton fichier php.ini et modifies :

Code :
1
2
3
4
5
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
 
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
par :

Code :
1
2
3
4
5
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
 
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off (ou On, à tester)
nicolas.pied est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 21h25   #5
Membre confirmé
 
Avatar de diaboloche
 
Inscription : novembre 2004
Messages : 583
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2004
Messages : 583
Points : 229
Points : 229
Merci bien pour toutes ces réponses ! Problème résolu donc !

Bonsoir !
__________________
while(1)printf("BUG");
diaboloche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h30.


 
 
 
 
Partenaires

Hébergement Web