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

Eléphant du PHP | 112 Messages

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

Eléphant du PHP | 112 Messages

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...

Mammouth du PHP | 2703 Messages

07 févr. 2018, 14:21

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

Eléphant du PHP | 112 Messages

07 févr. 2018, 15:14

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