J'ai un petit problème, j'ai un champ dans ma base mysql dans lequel est stocké: "D'ores et déja disponible". Lorsque je veux lire ce message à travers ma page php dans un champ input, il s'affiche seulement un "D". Le reste de la phrase est coupé. Comment résoudre ce problème ?
il faut te servir soit de la fonction addslashes sur la chaîne/variable que tu insères dans ta base puis de stripslashes à l'affichage quand tu récupères les données depuis ta base, soit de mysql_real_escape_string.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Willy54) addslashes est à proscrire. Ça ne protèges rien du tout, en te donnant un sentiment de sécurité.
Pour entrer des données dans ta base MySQL, il faut effectivement utiliser mysql_escape_string ou mysql_real_escape_string, sur les données soumises. Et uniquement quand elle ne sont pas sûres (c'est inutile d'échapper une chaîne constante que tu sais ne contenir aucun caractère spécial).
Et ensuite, à l'affichage, si tu fais une application Web et que tu jette les données dans un document HTML, il faut que tu échappe un certain nombre de caractères. Tu peux le faire avec htmlspecialchars.
Et n'oublie pas qu'il ne faut jamais avoir confiance en ce qui provient de l'extérieur. Tout ce qui provient des tableaux superglobaux, de la base de données ou de fichiers doit être sécurisé, en sachant comment le sécuriser. Sinon tu risque d'aggraver le problème. C'est par exemple le cas avec addslashes et stripslashes.