[Résolu]Mysql, probleme avec les caracteres speciaux
Forum Programmation : [Résolu]Mysql, probleme avec les caracteres speciaux
Bonjour amis programmeurs
je me suis heurté à un nouveau problème, avec mysql/php
j'insère une variable php dans une base de donnée mysql de cette façon:
Code :
|
le problème est que si $titre possède un caractère spécial comme ', j'obtiens une erreur de syntaxe de ce genre
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 ' |
une idée ?
Message édité par Anonyme le 13-04-2007 à 14:30:51
C'est tout a fait normal !
Imagine
Code :
|
Ca plante car mySQL va pas comprendre ce que fait ablabla' ici...
Alors le mieux c'est d'utiliser addslashes() de php
Code :
|
Apres attention à l'injection de code...http://www.commentcamarche.net/attaques/injection-commandes-sql.php3
Regarde aussi du coté de http://fr.php.net/htmlentities ...
Répondre à MoOx_t
complément:
il est préférable d'utiliser mysql_real_escape_string ()
http://php.benscom.com/manual/fr/f [...] string.php
qui met un \ avant ' et autres et en plus protège contre les injections de code en traitant la chaine selon l'encodage de la base
Nickel je connaissais pas !
Répondre à MoOx_t
Merci de vos réponses
c'est exactement ce que je voulais
Pour enlever les caractères qui bloquent ton insertion fais : addslashes($titre); il va dupliquer le caractère en question . au moment de la lecture tu feras stripslashes($titre)
Si je puis me permettre, en général, la concaténation évite aussi ce genre de problèmes :
mysql_query("insert into table values('".$var."')" );
Mais addslashes est une bonne solution.
Après, par mesures de précaution je te conseille de faire ceci :
$var = htmlentities(mysql_escape_string($var)); par exemple.
Merci mon problème était résolu mais j'en prends note pour la prochaine fois
@mofallyes:
- quand il y a résolu dans le titre, c'est que c'est le cas
- addslashes() ne protège pas contre les injections sql
- et surtout ca a été dit 4 posts avant
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Il y a 312 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
