Bonjour à tous !
Voilà, j'ai des petites questions qui me trotent dans la tête depuis un bout de temps...
Je ne suis pas développeur, professionnellement parlant, mais disons que comme beaucoup de gens, je m'amuse sur des projets persos (voire parfois plus).
Il y a une chose qui me gêne encore et toujours, et ce malgré la lecture de la FAQ de ce site, et du sujet sur "encodage : que choisir"...
Comment traiter les données, en entrée (formulaire) et en sortie ?
Avant j'utilisais HTMLENTITIES. Super, ça marchait en local... Moins super, ça marchait plus une fois en ligne !
Je veux dire par là : aucun problème à l'entrée, mais une fois dans la base et, surtout, une fois sorti, c'était l'horreur côté caractères accentués...
La page était déclarée comme suit :
On m'a demandé (j'étais en stage à cette époque ^^) d'enlever tous les htmlentities... Soit... Par contre j'ai bien entendu laissé les "addslashes".
Pour traiter les caractères accentués (ils y étaient dans la base, un "é" apparaissait bien "é" dans la base), j'ai fait la fonction suivante, qui agit sur la sortie :
En tout cas comme ça, ça marchait...
En gros, j'ai :
- En entrée, strip_tags si les formulaires sont accessibles aux visiteurs, et pour tous les formulaires : addslashes.
- En sortie, ma fonction htmlent.
Mais bon, j'ai l'impression de faire plus du bricolage qu'autre chose !
J'aurais aimé savoir ce que vous utilisez, dans un souci de respect des standards, permettant un site portable sur toute base.
(edit : si cela n'est pas trop utopique
)
Modifié par Clemdups (22 Jun 2006 - 10:42)
Voilà, j'ai des petites questions qui me trotent dans la tête depuis un bout de temps...
Je ne suis pas développeur, professionnellement parlant, mais disons que comme beaucoup de gens, je m'amuse sur des projets persos (voire parfois plus).
Il y a une chose qui me gêne encore et toujours, et ce malgré la lecture de la FAQ de ce site, et du sujet sur "encodage : que choisir"...
Comment traiter les données, en entrée (formulaire) et en sortie ?
Avant j'utilisais HTMLENTITIES. Super, ça marchait en local... Moins super, ça marchait plus une fois en ligne !
Je veux dire par là : aucun problème à l'entrée, mais une fois dans la base et, surtout, une fois sorti, c'était l'horreur côté caractères accentués...
La page était déclarée comme suit :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
On m'a demandé (j'étais en stage à cette époque ^^) d'enlever tous les htmlentities... Soit... Par contre j'ai bien entendu laissé les "addslashes".
Pour traiter les caractères accentués (ils y étaient dans la base, un "é" apparaissait bien "é" dans la base), j'ai fait la fonction suivante, qui agit sur la sortie :
function htmlent($variable) {
$accentue=array("à","â","ä","é","è","ê","ë","î","ï","ô","ö","ù","ç");
$htmlent=array("à","â","ä","é","è","ê","ë","î","ï","ô","ö","ù","ç");
$variable= str_replace($accentue,$htmlent,$variable);
$variable=stripslashes($variable);
return ($variable);
}
En tout cas comme ça, ça marchait...
En gros, j'ai :
- En entrée, strip_tags si les formulaires sont accessibles aux visiteurs, et pour tous les formulaires : addslashes.
- En sortie, ma fonction htmlent.
Mais bon, j'ai l'impression de faire plus du bricolage qu'autre chose !
J'aurais aimé savoir ce que vous utilisez, dans un souci de respect des standards, permettant un site portable sur toute base.
(edit : si cela n'est pas trop utopique

Modifié par Clemdups (22 Jun 2006 - 10:42)