Formulaire PHP (les apostrophes)

dragonfire59 Messages postés 167 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
Ayant créer un formulaire pour rentré des personnes dans une BDD, je rencontre une difficulté, j'ai parcouru divers forum et n'ai trouvé de vraiment utile, quand je rentre mes données dans les champs de saisies sans apostrophes tout ce passe bien, une fois qu'il y a un champ adresse avec "23 rue de l'alabama", la requete ne s'éxécute pas, y a t il un moyen de passer outre ce problème ? j'ai vu sur des forums le addslahes mais je n'ai compris



A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
avant de rentrer les valeurs dans la bdd, passes par la fonction mysql_real_escape_string

ex: $adresse=mysql_real_escape_string($_POST['adresse']);

ça échappe les ' entre autre



par contre après pour afficher il faut appliquer stripslashes($adresse)
0
Utilisateur anonyme
 
Bonjour

par contre après pour afficher il faut appliquer stripslashes($adresse)
Absolument pas. Si tu as besoin de le faire, c'est que tu avais déjà des slashes en trop avant d'insérer tes données dans la base, ça ne vient pas de mysql_real_escape_string
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
décidément le père tu y tiens:

mysql_real_escape_string() protège une commande SQL de la chaîne unescaped_string, en "échappant" les caractères spéciaux tout en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée.

mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un anti-slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.


donc si la valeur avant est l'alabama la fct transforme en l\'alabama
0
Kafiristanica Messages postés 266 Date d'inscription   Statut Membre Dernière intervention   28
 
un exemple de la requete que tu essaye ?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
mea culpa

je viens de faire un petit script de test, effectivement bien que la lecture du descriptif de cette fonction ne le précise pas

ce qui est effectivement enregistré dans la BDD est sans \

donc cela depend de magic_cote_gpc

milles excuses !!
0
Utilisateur anonyme
 
Pas de problème ^^
Note qu'il est normal que ces backslashes ne se retrouvent pas enregistrés dans la base, il n'ont rien à y faire. Comme tous les caractères d'échappement, il servent juste à éviter que les caractères spéciaux jouent leur fonctions spéciales. Mais ils ne font pas partie des données.
0