Impossible d'enregistrer une variable texte avec apostrophe

Signaler
Messages postés
15
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
15 avril 2004
-
Messages postés
15
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
15 avril 2004
-
bonjour,
je suis en train de faire un forum et je rencontre un problème du moins handicapant. Impossible de mettre des apostrophes dans les messages sinon ils ne sont pas enregistrés dans la base de données :-/

voilà le code de la textarea où je saisis le message:

echo "<TR><TD><textarea rows='6' name='msg' cols='50' style='background-color: #424242; color: #CCCC00' border-style: inset></textarea>

</TD></TR>";

là je récupère son contenu dans une nouvelle page:

$msg=$_POST["msg"];

puis j'exécute une requête

$query="insert into post (nb_titre, nb_membre, msg, date) values ('".$titre."','".$mid."','".$msg."','".$date."');";
mysql_query($query);

si quelqu'un a une idée ça m'aiderait beaucoup parce que là je bloque d'autant plus que les messages sans apostrophes sont acceptés :-/

merci d'avance

2 réponses

Messages postés
126
Date d'inscription
mercredi 18 juillet 2001
Statut
Membre
Dernière intervention
27 octobre 2004

Avant d'entrer les données dans la base, il est indispensable d'échapper les caractères ' et " !!!

Sinon, il est possible de faire éxécuter du code malveillant au serveur comme par exemple en postant dans le champ message un truc du genre :
', ''); DROP DATABASE;
Et hop, l'utilisateur a détruit ta base de données !

Pour éviter cela, tu devras échapper toutes les chaines de caractères saisies par l'utilisateur avant de les entrer dans la base. Et à la lecture, de les deséchapper.

Les fonctions php qui font ça sont :
stripslashes - pour deséchapper - http://fr2.php.net/manual/fr/function.stripslashes.php
addslashes - pour échapper - http://fr2.php.net/manual/fr/function.addslashes.php

Dernière remarque, si dans ton fichier de conf tu as : les magic_quotes à On, tu n'as pas besoin de deséchapper les chaines

Cordialement,

ADPro22
Messages postés
15
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
15 avril 2004

Ok merci j'essaie ça tout de suite.