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

PHP & Base de données Discussion :

Problème d'apostrophes, mais pas partout. [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut Problème d'apostrophes, mais pas partout.
    Bonjour,

    Je suis actuellement entrain d'ajouter quelques fonctionnalités sur un site dont la principale est l'utilisation d'une base de données.

    J'avoue ne pas trop avoir cherché quoi prendre comme SGBD et mon hébergeur (OVH) proposant entre autre MySQL je me suis tourné vers celui ci.

    Entrons dans le vif du sujet...

    Je développe mon site avec wamp. Tous mes tests sont concluants, mais je m'aperçois lors de ceux-ci que je dois passer, pour chaque variable destinée à être insérée dans ma table, par la fonction
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mavariable = addcslashes($mavariable, "'");

    si je ne veux pas avoir d'erreur.

    Soit, c'est pas très compliqué et je fais donc ça pour toutes mes variables.

    Finalement sur le serveur de test tout ce passe à merveille.

    Je lance l'upload sur OVH, et refais les tests, et là ... big ça plante

    Après quelques essais, je m'aperçois que c'est cette même fonction qui fait planter le truc et que je dois donc l'enlever...

    Relativement bizarre !!!

    C'est pourquoi je me permets de vous demander si vous avez une explication à cette chose (et au passage une solution autre que créer une fonction "toto" permettant de vérifier sur quel serveur je suis, et le cas échéant d'appliquer la fonction addcslashes()) , car c'est plutôt lourding.

    D'avance merci.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Membre confirmé
    Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Juin 2004
    Messages : 88
    Par défaut
    Hello,

    c'est tout simplement car ovh a configuré son serveur différemment que wamp.

    donc 2 solutions, soit il faut chercher dans la config php/apache de ton wamp pour avoir la function utilisée par défaut, soit effectivement faire une vérification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ajoutslashes($var) {
    $local = array('localhost', '127.0.0.1');
     
        if(in_array($_SERVER['HTTP_HOST'], $local)){
            return addcslashes($var,"'");
        } else {
            return $var;
        }
    }
    et tu fais appel à ta function sur les variables ou c'est nécessaire.

    Mais il est évident qu'il vaut mieux chercher dans la config wamp, ça évite de surcharger, jédite mon poste si je trouve ou c'est ^^

    bonne journée.


    EDIT: apparement il faut chercher du côté des magic_quotes que tu trouveras en éditant php.ini (via le menu contextuel de wamp si mes souvenirs sont bons)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Par défaut
    Bonjour,

    utilises plutot mysql_real_escape_string que addslashes

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    encore mieux oublie vite le connecteur mysql et même mysqli qui sont en passe d'être abandonnés et plus maintenus... et passe à pdo...


  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Merci à vous trois.

    @ ddelec24 : J'ai effectivement fait une fonction similaire dans l'urgence. Mais comme tu le dis ajouter encore et encore du code ça me plait pas de trop. Je vais donc regarder ce paramétrage de wamp.

    @ selmouadin : Le ne connais pas cette commande, mais à lire php.net, il l'a déconseille, au profit notamment d'un certain PDO.

    @ ericd69 : Merci pour ce conseil. Comme précédemment j'avoue ne pas connaitre ceci. Je vais donc me pencher dessus si c'est réellement plus intéressant. Par contre juste une petite question, c'est bien d'utiliser PDO_MYSQL que tu me conseilles ?

    Encore merci à vous.

    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  6. #6
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    la classe pdo de php, y en a qu'une

    c'est un connecteur qui prend en charge la plupart des sgbd, ce n'est qu'un réglage lors de la connexion à faire et le reste est tu ne change plus le reste de ton code sauf pour des écritures de requête avec une syntaxe liée au sgbd bien sur


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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/08/2012, 09h57
  2. problème d'accent mais pas seulement
    Par dumoulex dans le forum Requêtes
    Réponses: 9
    Dernier message: 20/07/2011, 10h33
  3. Réponses: 2
    Dernier message: 12/11/2010, 09h39
  4. [Cookies] Problème dans IE mais pas dans FF
    Par Manio 54 dans le forum Langage
    Réponses: 19
    Dernier message: 15/12/2005, 18h30
  5. Problème dans Xpath avec Xerces ou Xalan mais pas XMLSpy
    Par Superpoisson dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/09/2005, 14h29

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