IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] str_replace ?


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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");

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    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...

  3. #3
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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 127
    Points : 2 557
    Points
    2 557
    Par défaut
    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 \.

  4. #4
    Membre actif
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Points : 235
    Points
    235
    Par défaut
    C'est bien les magicquotes. Si tu veux avoir la même configuration en local, ouvres ton fichier php.ini et modifies :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  5. #5
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Merci bien pour toutes ces réponses ! Problème résolu donc !

    Bonsoir !
    while(1)printf("BUG");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 16h28
  2. [postgresql]configuration serveur
    Par Fyna dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 16/06/2003, 20h22
  3. [configuration] lancer plusieurs serveurs Tomcat
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 13/06/2003, 16h52
  4. Configurer OpenGL/Glut avec C++Bluider
    Par MiGoN dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/09/2002, 00h18
  5. BDE : Configurer automatiquement le NETDIR
    Par Harry dans le forum Paradox
    Réponses: 10
    Dernier message: 29/07/2002, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo