caractere speciaux php et bbd

caractere speciaux php et bbd - PHP - Programmation

Marsh Posté le 14-12-2006 à 12:11:52    

bonjour,
 
je fais une requete sur une base de donné postgresql.
la requete récupère des données,  à partir d'un nom, récupéré dans un champs 'nom' de formulaire classique html.
 
 

Code :
  1. $choix = $_POST['nom']
  2. $requete = "select * from table_nom where nom ='$choix' ";


 
j'ai evidemment un soucis avec les caractères spéciaux du genre '
j'utilise addslashes mais ça marche pas....  je fais
 

Code :
  1. $choix = addslashes($_POST['choix']);


 
???

Reply

Marsh Posté le 14-12-2006 à 12:11:52   

Reply

Marsh Posté le 14-12-2006 à 13:24:03    

utilise plutot la fonction postgre escape_string que addlslashes.
 
Mais à ta place je ferais les choses plus proprement en faisant un bind variable:

Code :
  1. $requete = "select * from table_nom where nom =$1 ";
  2. $result = pg_prepare($dbconn, "query", $requete);
  3. $result = pg_execute($dbconn, "query", array($_POST['choix']));


qui te protegera egalement contre les injections sql .

Reply

Marsh Posté le 14-12-2006 à 13:27:44    

addslashes = magic_quotes_gpc = caca

Reply

Marsh Posté le 14-12-2006 à 21:42:30    

merci anaj... et florent ok mais explique alors...
 

Reply

Marsh Posté le 14-12-2006 à 21:43:23    

c space parceque la plupart des sites donne  addlslashes.... je test comme vous dite...

Reply

Marsh Posté le 15-12-2006 à 08:57:39    

la "plupart des sites" sont fait par des gens aussi experts dans ce qu'ils racontent qu'en pêche à la mouche dans les rivières moldaves.

Reply

Marsh Posté le 17-12-2006 à 17:52:57    

yop
 
g eu le probleme il ya deux jours et comme je ne doute de rien g fait ma propre fonction...
 
ca marche mais est-ce que c'est laid ?  :D  
 
function clearString($str){
    $tab = str_split($str);
    $string = "";
    foreach($tab as $l){
      if($l == '\''){
        $l = "\\".$l;
      }
      $string = $string.$l;
    }
    return $string;
  }

 
apres je met ce que renvoie la fonction dans mon select et c'est bonnard  :)  
 
je précise que c'est pour un outil de monitoring dans reseau local et donc pas exposé aux attaques  :sol:  
 
++
zav

Reply

Marsh Posté le 18-12-2006 à 09:34:15    

z4v4th4 a écrit :


g eu le probleme il ya deux jours et comme je ne doute de rien g fait ma propre fonction...
ca marche mais est-ce que c'est laid ?  :D


AMHA, c'est super laid ... Tu as des fonctions déjà faites, suffit de lire la doc, pourquoi refaire la sienne?
 
Je sais pas moi j'ai une base Zorg :o  
Sans plaisanter, que veux tu dire par base SQL? J'hésite entre SQL server ou mySQL  ....

Reply

Marsh Posté le 18-12-2006 à 12:30:22    

j'ai utilisé postgre escape_string, ça marche nikel :-)

Reply

Marsh Posté le 18-12-2006 à 16:26:03    

Citation :


AMHA, c'est super laid ... Tu as des fonctions déjà faites, suffit de lire la doc, pourquoi refaire la sienne?


bin en fait je m'en doutais un peu... m ct plus rapide réécrire ma fonction que d'en chercher dont je ne connaissais pas le nom dans google pour ensuite me reporter à la doc... à ce moment là gt pressé  :D  
 
m c clair maintenant que je sais qu'il y a une fonction "propre" pour faire ca je vais chercher ... thanks  :bounce:  
 
sinon pour répondre au copain en SQL : bin ca devrait rouler puisqu'il s'agit d'éditer ta requette avant de l'éxécuter... me trompe-je ? tu as essayé ?
 
++
zav

Reply

Marsh Posté le 18-12-2006 à 16:26:03   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed