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 :

SELECT LIKE avec apostrophe [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut SELECT LIKE avec apostrophe
    Bonsoir,
    Là je ne trouve pas de parade sérieuse a un SELCTE LIKEdans mon cas ou des clieents ont des noms avec apostrophe
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $lui="D'ALIVRANCE";
    //=====alors=========
    mysql_query ("SELECT * FROM apod_rv WHERE nompren  LIKE '$lui%'  LIMIT 15");
    Avez vous déjas rencontré ce problême

    Merci d'avance
    Christele

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $lui = mysql_real_escape_string("D'ALIVRANCE");
    //=====alors=========
    mysql_query ("SELECT * FROM apod_rv WHERE nompren  LIKE '$lui%'  LIMIT 15");

  3. #3
    Invité
    Invité(e)
    Par défaut
    Mille mercis a toi,
    Mais avec PDO ce n'est pas possible
    mais du coup tu m'as donné une idée et ça marche avec MySql et PDO
    Whaou ! Tout bétement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $lui="D'ALIVRANCE";
    //=====alors=========
    mysql_query ('SELECT * FROM apod_rv WHERE nompren  LIKE "'.$lui.'%"  LIMIT 15');
    C' est TOP !
    A++ Christele

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 417
    Par défaut
    Non pas TOP du tout, c'est pas le bon moyen -> c'est une faille de sécurité et tu t'expose à des injections sql. Toutes les variables doivent être protégées dans une requête, et pas qu'avec la clause LIKE.

    Avec mysql il faut utiliser la fonction mysql_real_escape_string (comme déjà dit).
    Avec PDO if faut utiliser la fonction quote ou des requêtes préparées.

    C'est un impératif et si tu ne le fais pas ton site est très vulnérable à tout pirate même amateur, cf exemple 2 de ce lien. Attention de ne pas traiter ces problèmes à la légère

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    N'étant pas le sujet, je m'étais attachée qu'a la syntaxe de mon probléme, donc pour moi c'est clos.
    NB bien entendu je protéges tout sur mes sites

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 417
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Bonjour,
    N'étant pas le sujet, je m'étais attachée qu'a la syntaxe de mon probléme, donc pour moi c'est clos.
    NB bien entendu je protéges tout sur mes sites
    Réponse pour le moins ambigüe : on ne traite pas une requête comme une chaine de caractère standard, et il n'y a pas lieu de déroger à cette règle pour ton problème.

    Par ailleurs je doute un peu que tes sites soient correctement protégés contre les injections sql car dans ce cas tu utiliserais systématiquement les fonctions mysql_real_escape_string ou quotes (ou des requêtes préparées), ce qui fait que tu n'aurais pas eu ce problème et donc pas de question à poser.

    Bon en admettant que tu utilise ces fonctions dans tes autres requêtes et que tu te pose la question spécifiquement pour LIKE, et bien il faut faire pareil pour LIKE. En d'autres termes si tu as trouvé l'origine du problème, ta façon d'y répondre n'est pas correcte.

    Notes bien que je ne te dis pas ça par simple esprit de contradiction

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

Discussions similaires

  1. SQL SELECT probleme avec LIKE
    Par matth59 dans le forum VB.NET
    Réponses: 9
    Dernier message: 24/07/2013, 14h29
  2. Soucis avec SELECT LIKE
    Par sitadom39 dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/05/2013, 19h13
  3. Faire un Select like avec une liste
    Par kassar32 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/12/2011, 13h31
  4. Problème de requête LIKE avec apostrophes
    Par cyberlp dans le forum MySQL
    Réponses: 11
    Dernier message: 04/11/2010, 12h10
  5. requette select like avec un caractere de moins
    Par firejocker dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/10/2005, 09h01

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