Impossible d'enregistrer une variable texte avec apostrophe

cs_brice57 Messages postés 15 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 15 avril 2004 - 12 avril 2004 à 18:50
cs_brice57 Messages postés 15 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 15 avril 2004 - 12 avril 2004 à 23:22
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

ADPro22 Messages postés 126 Date d'inscription mercredi 18 juillet 2001 Statut Membre Dernière intervention 27 octobre 2004
12 avril 2004 à 20:52
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
0
cs_brice57 Messages postés 15 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 15 avril 2004
12 avril 2004 à 23:22
Ok merci j'essaie ça tout de suite.
0
Rejoignez-nous