Page 1 sur 1

caractéres a eviter, quels sont ils?

Posté : 17 févr. 2006, 14:48
par momox
Salut a tous,
quels sont les caracteres a ne pas mettre dans une base mysql et quel sont les fonctions php qui pourraient permettre de les remplacer par un code?
@+

Posté : 17 févr. 2006, 15:08
par albat
caractères à éviter... oui, mais où ça ?

Dans le contenu des champs ou dans les noms des objets (tables, champs,...) ?

Posté : 18 févr. 2006, 19:27
par momox
Ce serais plutot dans le contenu des champs.
@+

Posté : 18 févr. 2006, 19:34
par albat
Tu es - heureusement - libre d'insérer tout ce que tu veux comme données alphanumériques dans ta base. :langue:

Toutefois, il est opportun de prendre certaines précautions :
- jeu de caractères utilisé
- échappement de certains caractères : ' " ou /

Posté : 18 févr. 2006, 19:37
par momox
Qu'entends tu par echappement?
@+

Posté : 18 févr. 2006, 19:46
par albat
"échapper" un caractère revient à le "protéger" pour éviter qu'il soit interprêté.

Si tu souhaites afficher entre apostrophes, une chaîne qui contient... des apostrophes,
tu risques une erreur de syntaxe :
echo 'toto a dit : "j'ai faim !"';
La coloration syntaxique te permet de voir que dans l'instruction ci-dessus,
l'apostrophe contenu dans la chaîne est interprêté comme délimiteur de la fonction echo.
C'est pas ce qu'on souhaitait...

Une solution est d'échapper les apostrophes :
echo 'toto a dit : "j\'ai faim !"';
*Tu vois la différence ? ;)

Ça, c'était un échappement manuel : j'ai précédé les apostrophes de ma chaîne par un \

Tu peux "échapper" automatiquement les caractères litigieux grâce à différentes fonctions.
Je te suggère de jeter un oeil sur des fonctions telles que : addslashes(), stripslashes(), htmlentities(), htmlspecialchars(),...