requete sql avec apostrophe problématique

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 : requete sql avec apostrophe problématique

Re: requete sql avec apostrophe problématique

par devlop78 » 22 nov. 2010, 04:53

sinon désactiver les magic quotes ... pensez à php6 ;)

Re: Resolu: requete sql avec apostrophe problématique

par AB » 20 nov. 2010, 19:25

Bingo!
Ouf!
Grand merci, j'avais passé des heures pour essayer de débloquer ça.
En fait, le problème venait de ce que l'interclassement de matable était latin.., quand je l'ai passé sur uft-8, ça a fonctionné, en l'état.
Avec ton script, il faut remplacer mysql_real_escape_string() par addslashes() pour que cela fonctionne.
Merci encore, et bon W.E,

Thierry
Heu normalement non, il ne faut pas remplacer mysql_real_escape_string() par addslashes() pour que cela fonctionne, il n'y a aucune raison de faire cela. Regardes la doc sur la fonction mysql_real_escape_string
Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL
et je doute fort que les besoins de ton code fassent partie des exceptions :wink:

Resolu: requete sql avec apostrophe problématique

par Anémone » 20 nov. 2010, 12:02

Bingo!
Ouf!
Grand merci, j'avais passé des heures pour essayer de débloquer ça.
En fait, le problème venait de ce que l'interclassement de matable était latin.., quand je l'ai passé sur uft-8, ça a fonctionné, en l'état.
Avec ton script, il faut remplacer mysql_real_escape_string() par addslashes() pour que cela fonctionne.
Merci encore, et bon W.E,

Thierry

Re: requete sql avec apostrophe problématique

par AB » 20 nov. 2010, 04:44

Essais d'utiliser cette fonction qui vient de ce tuto en utilisant cette syntaxe.
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

$produit = Verif_magicquotes($_GET['suppr']);

$requete ="DELETE FROM matable  WHERE  produit = '".mysql_real_escape_string($produit)."'  LIMIT 1";

$suppression = mysql_query($requete);

if(!$suppression){echo mysql_error();}
ça renvoi quoi ?

requete sql avec apostrophe problématique

par Anémone » 20 nov. 2010, 03:34

Bonjour,

Voici un problème qui me tient en suspens depuis trop longtemps, et le fera sans doute encore sans une aide.
J'essaie de supprimer en base de données des chaines susceptibles de contenir des apostrophes.
Si par exemple j'ai en base: saucisse à l'ail, en faisant par l'interface sql de phpmyAdmin, la requete
DELETE FROM `matable` WHERE produit='saucisse à l\'ail' LIMIT 1
je fais disparaitre la saucisse à l'ail.
Mais pas avec ce script php, exécuté à partir de mon site
$suppression_dans_matable ="DELETE FROM `matable` WHERE `produit`='".$_GET['suppr']."'  LIMIT 1";
									$suppression= mysql_query($suppression_dans_matable);
									if(!$suppression_dans_table){echo mysql_error();}
script dans lequel on a bien:
echo $_GET['suppr'];  //saucisse a l\'ail
Et je n'ai pas meilleur résultat avec
$suppression_dans_matable ='DELETE FROM `matable` WHERE `produit`=\''.$_GET['suppr'].'\'  LIMIT 1'
$suppression= mysql_query($suppression_dans_matable);
									if(!$suppression_dans_table){echo mysql_error();}
Si dans ma table j'ai: poivre, l'huile, l'oeuf, boite à oeufs à supprimer, le script fonctionne, et avec la saucisse à l'ail ou les sardines à l'huile,jamais.
J'ai tout essayé des str_replace, stripslashes, addslashes...
D'avance merci pour le coup de main,
Bien cordialement,

Thierry