[RESOLU] Problème d'apostrophe dans une requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème d'apostrophe dans une requête

Re: Problème d'apostrophe dans une requête

par Anémone » 07 févr. 2018, 15:14

Super! C'était ça! Grand merci!

Re: Problème d'apostrophe dans une requête

par or 1 » 07 févr. 2018, 14:21

et avec
mysqli_real_escape_string($connect, urldecode($_REQUEST['calcul']))
?

Re: Problème d'apostrophe dans une requête

par Anémone » 07 févr. 2018, 13:55

Erratum:
C'est

Code : Tout sélectionner

urldecode(mysqli_real_escape_string($connect,$_REQUEST['calcul']))
que j'utilise, aussi bien dans ma requête que dans l'affichage de son objet...

Problème d'apostrophe dans une requête

par Anémone » 07 févr. 2018, 13:42

Bonjour,

Sujet ô combien récurent sur lequel j'ai épluché tout ce que j'ai trouvé sans succès.
Je veux faire une recherche dans une bdd dans laquelle les apostrophes ne sont pas échappées.
Je passe par un GET, qui me met en url:

Code : Tout sélectionner

calculs_nutritionnels.php?calcul=sardine%2B%25C3%25A0%2Bl%2527huile%252C%2Bappertis%25C3%25A9e%252C%2B%25C3%25A9goutt%25C3%25A9e
Avec le code ci-dessous

Code : Tout sélectionner

mysqli_real_escape_string($connect,$_REQUEST['calcul'])
J'affiche correctement

Code : Tout sélectionner

sardine à l'huile d'olive, appertisée, égouttée
En faisant une requête via phpmyadmin, je trouve la réponse correcte. Cependant ma requête est transformée par phpmyadmin en:

Code : Tout sélectionner

SELECT * FROM `composition_nutritionnelle` WHERE `produit` LIKE 'sardines à l''huile d''olive, appertisée, égouttée'
En revanche ma requête passée par le formulaire ci-dessous n'aboutit pas:

Code : Tout sélectionner

SELECT * composition_nutritionnelle WHERE produit LIKE '".mysqli_real_escape_string($connect,$_REQUEST['calcul'])."'
J'ai essayé de remplacer dans ma requête les ' par des '', j'ai désactivé les magic_quotes par php.ini et .htaccess, et tout ça sans résultat.
Un coup de main serit des plus bienvenus.
Un grand merci d'avance,

Thierry