Bonjour,
J'ai lu des dizaines de trucs sur ce sujet mais cette fois ci je tourne en rond !
Pas moyen de supprimer les anti-slashes qui j'ajoute tout seul lorsqu'on insère des données texte dans la base avec un formulaire.
Pour commencer j'ai tester magic_quotes_gpc comme ça :
Dans mon cas c'est 1 donc l'option est activé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php echo get_magic_quotes_gpc(); // Retourne 0 si l'option est désactivée, si c'est activé retourne 1 ?>
La fonction que j'utilise pour insérer les données dans la base est celle ci :
Si j'utilise stripslashes le retour est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function update() { $id = $_REQUEST['id']; if(is_numeric($id)) { $sets = 'ts=NOW()'; $rfields = $this->my->query('SHOW FIELDS FROM '.$this->table); if($rfields) { while(list($field,$fieldtype)=mysql_fetch_row($rfields)) { if($field!='ts' && $field!='id') { $sets.= ','.$field.'=\''.addslashes($_REQUEST[$field]).'\''; /* $sets.= ','.$field.'=\''.stripslashes($_REQUEST[$field]).'\''; */ //retourne error in your SQL syntax } } } $query = 'UPDATE '.$this->table.' SET '.$sets.' WHERE id='.$id; // affiche le retour de la base de donnée // echo "\$query=<b>$query</b><br>\n"; $result = $this->my->query($query); if($result) { $this->home(); } else { $this->err(mysql_error()); } } }
Quelqu'un a une idée ?You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near.....
Partager