caractéres a eviter, quels sont ils?

Mammouth du PHP | 1511 Messages

17 févr. 2006, 14:48

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?
@+

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

17 févr. 2006, 15:08

caractères à éviter... oui, mais où ça ?

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

Mammouth du PHP | 1511 Messages

18 févr. 2006, 19:27

Ce serais plutot dans le contenu des champs.
@+

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 févr. 2006, 19:34

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 /

Mammouth du PHP | 1511 Messages

18 févr. 2006, 19:37

Qu'entends tu par echappement?
@+

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 févr. 2006, 19:46

"é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(),...