fredrick Posté 19 Avril 2006 Partager Posté 19 Avril 2006 Voilà, J'ai un petit soucis avec l'insertion de données provenant d'un champ de formulaire dans une base de donnée. Lorsque le visiteur tape une phrase contenant un ' dans le champ du formulaire alors les données ne pas inscrites dans la bdd. Ex: rue d'Ecaussinnes Ca ne marchera pas à cause du ' Comment régler ce problème? Merci, Fred Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 19 Avril 2006 Partager Posté 19 Avril 2006 Bonjour, Tu peux utiliser la fonction addslashes() de PHP. Elle aura pour effet de mettre un anti-slash \ devant le '. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredrick Posté 19 Avril 2006 Auteur Partager Posté 19 Avril 2006 merci beaucoup. Je ne connaissais pas cette fonction. Bonne journée et encore merci, Fred Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 19 Avril 2006 Partager Posté 19 Avril 2006 Tu peux aussi utiliser les fonctions type htmlentities, qui vont transformer les caractères spéciaux en entités html. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 19 Avril 2006 Partager Posté 19 Avril 2006 merci beaucoup. Je ne connaissais pas cette fonction. Donc j'imagine que tu ne connais pas stripslashes() à utiliser lors de la récupération pour enlever les backslashes ajoutés précédemment. Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
arklif Posté 19 Avril 2006 Partager Posté 19 Avril 2006 (modifié) Comme Dan, <? addslashes($masupervariable); ?> et <? stripslashes($masupervariable); ?> pour viré les \ avant je connaissais pas non plus... Modifié 19 Avril 2006 par arklif Lien vers le commentaire Partager sur d’autres sites More sharing options...
petit-ourson Posté 19 Avril 2006 Partager Posté 19 Avril 2006 Moi aimant les bases de données clean (sans caractères échappés ou convertis en html, on ne sait jamais ce que l'on fera des données), je conseille plutot d'utiliser : mysql_real_escape_string() ou mysql_escape_string() Lien vers le commentaire Partager sur d’autres sites More sharing options...
Boo2M0rs0 Posté 19 Avril 2006 Partager Posté 19 Avril 2006 Heu ... je comprends pas, pourquoi faudrait-il utiliser stripslashes avant l'affichage ?? Addslashes est utilisé pour que mysql comprene que le ' est un caractère et donc il n'enregistre pas le slash dans la base de donnée, donc quand on fait une requête, il ne renvoit pas de slash à php donc stripslashes est inutile et altère même les données (en supposant que l'utilisateur ait tapé intentionnelement des slash). Si vous êtes quand même obligés d'utiliser stripslashes, c'est que les données ont été échappés deux fois de suite (une première fois par magic_quote_gpc et une deuxième fois par addslashes() ). Sinon, il m'est arrivé avec certains scripts qu'ils ne marchent pas en ligne sur mon hebergement, parce que j'avais échappé les guillemets avec un slash (ça donne \' ). J'ai utilisé un autre échappement propre à mysql, qui consiste à doubler les guillemets ( ça donne '' ) et cette fois-ci je n'ai pas obtenu d'erreur mysql et le script a marché à merveille ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
petit-ourson Posté 19 Avril 2006 Partager Posté 19 Avril 2006 (modifié) Attention également pour ceux qui ont les (satanées) magic_quotes d'activées ... Pour mysql, il est conseillé d'échapper plus que les quote il me semble. Modifié 19 Avril 2006 par petit-ourson Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant