Bonjour,
Je vais résumer ma situation :
Je crée un site PHP avec des formulaires de saisies pour les utilisateurs. Les données sont ensuite stockées dans une base MySQL. Certains champs seront affichés tels quels, d'autres passent pas un parser wiki. Je souhaite utiliser l'encodage [b]ISO-8859-1[/i].
Si j'ai bien compris, je dois faire en sorte d'enregistrer mes fichiers HTML, PHP, et les autres (JS, CSS, ...) aussi je suppose, en choisissant l'encodage ISO-8859-1.
Pour assurer une certaine pérennité à mon site web, quelles sont selon vous les traîtements à appliquer sur les chaînes :
* avant stockage dans la BD
* éventuellement avant affichage
Jusqu'à présent j'ai utilisé
Avant le stockage dans la base de données :
* Dois-je conserver htmlspecialchars ?
* Dois-je utiliser une autre fonction (par exemple addslashes, mysql_real_espace_string ou mysql_escape_string) qui se contenterait juste d'inhiber les cractères reservés (apostrophes), ceci afin de stocker le texte brut et d'améliorer sa pérennité ?
En bref, est-ce que le fait de stocker des fichiers dont certains sont déjà encodés en entités HTML peut selon vous poser des problèmes par la suite (modification des entités, exploitation de ces données sur un autre support...) ?
Vient ensuite la seconde étape qui est dépendente de la précédente et qui va rendre les données compatibles HTML & ISO 8859-1 : le traitement pour l'affichage.
Quelles fonctions sont prévues à cet effet, sachant que je souhaiterais de préférence convertir en entités uniquement les caractères invalides dans l'encodage choisi. J'ai vu qu'il existe des fonctions de type mb_xxx() mais je n'ai pas très bien compris le fonctionnement.
Merci d'avance d'éclairer ma lanterne sur ces points encore un peu obscurs pour moi.
Modifié par 84mickael (22 Aug 2005 - 21:23)
Je vais résumer ma situation :
Je crée un site PHP avec des formulaires de saisies pour les utilisateurs. Les données sont ensuite stockées dans une base MySQL. Certains champs seront affichés tels quels, d'autres passent pas un parser wiki. Je souhaite utiliser l'encodage [b]ISO-8859-1[/i].
Si j'ai bien compris, je dois faire en sorte d'enregistrer mes fichiers HTML, PHP, et les autres (JS, CSS, ...) aussi je suppose, en choisissant l'encodage ISO-8859-1.
Pour assurer une certaine pérennité à mon site web, quelles sont selon vous les traîtements à appliquer sur les chaînes :
* avant stockage dans la BD
* éventuellement avant affichage
Jusqu'à présent j'ai utilisé
htmlspecialchars($chaines, ENT_QUOTES)
// convertit ", ', <, > et & en entités HTML
avant stockage et rien après. Seulement je viens d'apprendre que certains caractères saisies (€, œ, ...) pourraient ête invalides dans l'encodage choisi.Avant le stockage dans la base de données :
* Dois-je conserver htmlspecialchars ?
* Dois-je utiliser une autre fonction (par exemple addslashes, mysql_real_espace_string ou mysql_escape_string) qui se contenterait juste d'inhiber les cractères reservés (apostrophes), ceci afin de stocker le texte brut et d'améliorer sa pérennité ?
En bref, est-ce que le fait de stocker des fichiers dont certains sont déjà encodés en entités HTML peut selon vous poser des problèmes par la suite (modification des entités, exploitation de ces données sur un autre support...) ?
Vient ensuite la seconde étape qui est dépendente de la précédente et qui va rendre les données compatibles HTML & ISO 8859-1 : le traitement pour l'affichage.
Quelles fonctions sont prévues à cet effet, sachant que je souhaiterais de préférence convertir en entités uniquement les caractères invalides dans l'encodage choisi. J'ai vu qu'il existe des fonctions de type mb_xxx() mais je n'ai pas très bien compris le fonctionnement.
Merci d'avance d'éclairer ma lanterne sur ces points encore un peu obscurs pour moi.
Modifié par 84mickael (22 Aug 2005 - 21:23)