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 :

caractère d'échappement stocké dans mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut caractère d'échappement stocké dans mysql
    Bonjour
    Je gère le site de ma chorale.
    En local, je suis en PHP 5.2.0 et mysql 5.0.22 et magic_quotes_gpc Off
    Chez l'hébergeur (pages perso de Free) c'est PHP 5.1.3RC4-dev et mysql 5.0.77 et magic_quotes_gpc On.
    Dans une table, des champs contiennent des chaines de caractères dont certaines comportent des '.
    J'applique mysql_real_escape_string à ces chaines avant insertion dans la table.
    En local, le champ contient la chaine avec apostrophe.
    Chez l'hébergeur, l'apostrophe est précédée du caractère d'échappement \
    Que puis-je faire pour ne pas avoir le caractère \ chez l'hébergeur.
    En suivant un ancien sujet de ce forum, j'ai déjà essayé :
    Le php_flag magic_quotes_gpc Off dans htaccess (qui génère une erreur 500 comme annoncé)
    un php.ini à la racine du site avec la directive magic_quotes_gpc = Off
    un ini_set("magic_quotes_gpc", "Off"); dans un script chargé en require_once au début du script qui insert les données dans la table.
    Tout cela ne change rien.
    Je sais que je peux retraiter les données extraites de la BD avec stripSlashes mais je devrais le faire à plusieurs endroits. Puisque, en local la chaine stockée est prête à l'emploi, j'aimerais avoir la même facilité chez l'hébergeur.
    Merci.
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Je te conseille de passer à PHP 5.6 * sur ton hébergement free.
    * (Disponible depuis 2015)

    Dans le .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <IfDefine Free>
    php56 1
    </IfDefine>
    2- Ensuite, tu peux afficher les infos avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo phpinfo(); ?>
    3- Sinon, il y a : PHP - Désactiver les guillemets magiques

    Citation Envoyé par jumaro Voir le message
    ...J'applique mysql_real_escape_string à ces chaines avant insertion dans la table...
    4- Donc, inutile de vouloir passer en PHP 7 ** tant que tu utiliseras l'extension mysql_ (obsolète depuis PHP 5.5 et supprimée en PHP 7).
    ** ( pas sûr que PHP 7 soit dispo. sur free.fr !)

    Il faudra utiliser mysqli_ (spécialement concu pour une migration plus facile depuis mysql_, les syntaxes variant peu) ou PDO (standard).

    5- Enfin, mets à jour ta version locale ! (-> PHP 5.6)
    Dernière modification par Invité ; 17/04/2019 à 09h15.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut caractère d'échappement stocké dans mysql
    Bonjour et merci jreaux62 de ta réponse qui amène plusieurs questions :
    Si je passe en php 5.6, tu me dis que je devrais utiliser mysqli. Cela implique-t-il de modifier tout le code existant, soit des centaines d'utilisations de mysql_ ?
    Est-ce que l'ensemble de mon code pré-existant restera utilisable avec php 5.6 ou y aura-t-il d'autres modifications à lui appliquer pour qu'il soit correctement exécuté ?
    En local, j'utilise EasyPHP 2.0b1. Je ne sais pas comment passer en php 5.6 dans cet environnement (idiot une minute plutôt que toute ma vie... !).
    En lisant le sujet https://www.php.net/manual/fr/securi....disabling.php, j'ai compris que tous les essais relatés dans mon 1er message étaient vains.
    Merci.
    Cordialement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Non.
    Tu as mal lu.

    1- Tu peux rester avec mysql_ en PHP 5.6.

    2- Cela dit, le passage à mysqli_ n'est pas trop compliqué *.
    Mais ce n'est pas la peine (pour l'instant), puisqu'il semble que PHP 7 ne soit pas encore installé chez free.fr !

    * Avec Notepad++, j'ai récemment passé un site (de plusieurs milliers de fichiers) de mysq_ à myqli_ (procédural) en... 1/2 heure !
    Il s'agit de faire quelques "remplacements".



    3- Pour EasyPHP, il suffit de télécharger une version récente.
    Ou WampServer.

    4- Quant à savoir si tu devras modifier des fonctions ou autres...
    ...ça on n'en sait rien : on n'a pas vu ton code.

    Mais vu l'ancienneté, ça ne te ferait pas de mal de faire un grand nettoyage !
    Dernière modification par Invité ; 18/04/2019 à 11h59.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut caratère d'échappement stocké dans mysql
    Merci de ta nouvelle réponse jreaux62.
    Par rapport au point 4 de celle-ci (les modifications non prévisibles que pourrait impliquer le passage à php 5.6) : si je le fais chez Free, pourrais-je repasser à php 5.2 simplement en ramenant le htaccess à son état antérieur si je vois qu'il y a des problèmes ?
    Sans doute vaut-il mieux d'abord installer en local une version récente d'EasyPHP avec php 5.6, en double de mon environnement actuel, y importer la BD pour voir ce qui se passe ?
    Merci
    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jumaro Voir le message
    Sans doute vaut-il mieux d'abord installer en local une version récente d'EasyPHP avec php 5.6, en double de mon environnement actuel, y importer la BD pour voir ce qui se passe ?
    En effet.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut caractère d'échappement stocké dans mysql
    Bonjour
    Peux-tu me dire ce qui change dans php 5.6 qui permet de ne pas avoir le caractère d'échappement dans mysql ?
    Concernant les modifications à faire éventuellement sur le site suite à l'upgrade de php, existe-t-il un outil permettant de lister toutes les occurrences de fonctions (ou autres "composants" php) qui sont à modifier en fonction de la version en place et de la version cible ?
    Merci.
    Cordialement

  8. #8
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut caractère d'échappement stocké dans mysql
    Bonjour
    Je n'ai guère eu le temps d'avancer sur le sujet depuis un moment. Je dois faire des essais sur le passage en php 5.6 avec une version récente d'EasyPHP. Comme je n'ai pas toujours beaucoup de temps pour travailler sur ces questions, je vais clore la discussion quitte à faire un nouveau sujet ultérieurement.
    Merci de ton aide jreaux62.
    Cordialement

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

Discussions similaires

  1. [MySQL] Images stockées dans MySQL
    Par Lereyn dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 29/03/2009, 21h11
  2. [MySQL] Télécharger images stockées dans mysql
    Par else_if dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/05/2008, 05h53
  3. [MySQL] afficher image stockée dans mysql
    Par dino-info dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/05/2008, 01h10
  4. [MySQL] Afficher une image stockée dans MySql
    Par yanng dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/11/2007, 20h56
  5. Caractéres spéciaux et accentués dans MySql
    Par FoxLeRenard dans le forum Outils
    Réponses: 3
    Dernier message: 18/01/2007, 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