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 :

Apostrophes dans mes champs input => erreur MySql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut Apostrophes dans mes champs input => erreur MySql
    Bonsoir,

    Je monte un éditeur de news et je suis confronté au problèmes des apostrophes. La requête ne passe pas ! je ne sais pas comment faire, je n'ai pas trouvé de question sur le sujet sur ce forum, pas d'autres tuyaux sur mes recherches que "tu n'as qu'à protéger tes apostrophes"... Mais je ne peux pas demander à celui qui écrit une new de protéger ses guillemets simples ou de ne pas mettre des apostrophes !

    D'autre part j'ai récupéré la requête en erreur et l'ai passée dans le SQL de mon Phpmyadmin. En essayant de mettre shlash et antishlash, mais ça plante le reste de la requête. J'ai essayé addshlash() et ça ne marche pas non plus...

    Y a-t-il une solution ?

    Merci par avance de vos réponses et bonne soirée à toutes et à tous...

  2. #2
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Salut,

    Je vois que vous utiliser PHP et addslashes n'a jamais été la solution.
    Si vous utilisez PDO ou mysqli , préparer votre requête suffit amplement pour régler le problème.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut
    Bonjour et merci pour votre réponse.

    Je n'utilise pas mysql mais mysqli, mais je ne sais pas construire des requêtes préparées. Ensuite j'ai mentionné addshlashes car j'ai vu un sujet sur le Net qui préconisait cela et, en désespoir de cause, j'ai testé cela, entre autres, mais sans résultat, comme je vous le disais. J'ai déjà bien avancé dans mes pages. Apprendre les requêtes préparées, changer tout dans mes pages risque de tout rendre confus... Je n'en ai pas le courage.
    Cependant, sauf votre respect, votre réponse n'en est pas vraiment une car vous me donnez des pistes alors que je cherche depuis deux jours et des pistes j'en ai vues beaucoup, sans avoir trouvé de réponse satisfaisante. C'est pour cela que je me suis adressé à vous tous, pour avoir une réponse sous forme de code, du concret, ou un lien vers des exemples construits, pratiques, pas théoriques.
    Ma requête, si pas d'apostrophe, fonctionne... c'est ça que je cherche à faire, la même requête, mais qui fonctionne quel que soit le caractère saisi (je protégerais les entrées au final pour éviter les codes indésirables...)

    Pour finir, bien entendu, le pb ne vient pas de la requête mais du PHP... Comment m'en sortir alors ?!

    Merci de vos réponses et bonne journée.

  4. #4
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Les requêtes préparées ne sont pas compliquées à mettre en place suffire de lire le manuel de mysqli et pour un truc plus aisé utiliser (peut être) PDO (il y a un tuto sur ce site ou lire la documentation officielle).
    Avec mysqli , on peut utiliser la fonction mysqli_real_escape_string à chaque fois qu'on veut "injecter" des données dans la requête .
    Il va falloir apporter des modifications à vos codes pour gérer ce cas, pas d'autres alternatives.

    Possible de voir à quoi ressemble une requête dans votre code actuel ?

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut
    Merci pour votre post,

    Ma requête ? Une requête INSERT... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = 
    "INSERT INTO news
       (date_new, titre_new, stitre_new, par_1_new, par_2_new, par_3_new, img_new_1, lgnd_new_1, alt_new_1, img_new_2,
       alt_new_2, lgnd_new_2, auteur_new, edit_new )
    VALUES
       ('".$date_new."', '".$titre_new."', '".$stitre_new."', '".$par_1_new."', '".$par_2_new."', '".$par_3_new."', '".$img_new_1."', '".$alt_new_1."',
       '".$lgnd_new_1."', '".$img_new_2."', '".$alt_new_2."', '".$lgnd_new_2."', '".$auteur_new."', '".$edit_new."' )";
    mysqli_query ($conn,$sql) or die ('Erreur SQL !'.$sql.'<br />'.mysqli_error());
    Considérant qu'il n'y a pas d'autres réponses je pense que ce problème est résolu. Bonne soirée à vous...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2015, 15h15
  2. problème d'apostrophe dans mes requetes
    Par kirian dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/05/2006, 12h06
  3. [W3C] Ne pas autoriser l'écriture dans un champ INPUT
    Par kerlann dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/04/2006, 10h22
  4. [VBA-A] Gérer les apostrophes dans le champ d'un formulaire
    Par cuicui08 dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/02/2006, 17h23
  5. [CSS] Redimensionner l'image de fond dans un champ input
    Par choubiroute dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 19/01/2006, 10h25

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