Aller au contenu

apostrophe et validation W3C


ghost

Sujets conseillés

Bonjour,

Je suis en train de tenter de valider un site en xhtml 1.0 strict.

Pour l'instant pas de problème pour le code, juste un souci sur du texte provenant de ma bdd et provoquant des erreurs à la validation notamment pour les apostrophes.

L'interclassement de la bdd est latin_1_general_ci, les textes proviennent du post d'un formulaire où j'utilise addslashes pour masquer les caractères "interdits" et stripslashes à l'affichage.

Au niveau de l'affichage dans le html pas de problèmes tout y est mais à la validation, il semble qu'il y ait un souci d'apostrophe typographique...

Je cherche à régler ce problème mais si quelqu'un à une idée, ce serait bien venu.

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Tout est très bien expliqué sur cette page du stie d'openWeb.

Il suffit ensuite d'utiliser la fonction str_replace() de php pour procéder au remplacement des apostrophes. Cependant, il peut y avoir des problèmes avec d'autres caractères, comme les guillemets, ... Il ne faut donc pas oublier de les traiter également.

Pas sûr, mais pour les guillemets , on trouve souvent des :

chr(132), chr(139), chr(155), chr(147), chr(148)

Que l'on peut remplacer par des char(34)

Pour les apostrophes :

chr(145), chr(146) à remplacer par chr(39)

Il y a aussi les tirets, les points de suspensions...

A+

Yhann.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Oui , j'y avait pensé mais dans ce cas c'est ennuyeux, les formulaires sont saisis depuis la console d'administration du site, je cherche quelque chose de plus pratique et surtpout j'aimerais bien comprendre ...

Lien vers le commentaire
Partager sur d’autres sites

Salut, le fantome,

Je ne suis pas sûr que tu trouves quelques chose de plus pratique...

Fréquemment, sur les backoffices, les gens collent un contenu créé dans Word. Ce dernier génère des caractères typographiques non valides en xhtml strict. Tout le problème est là. A moins d'empêcher une telle manipulation, c'est difficilement contournable.

Il te faut donc créer une fonction qui remplace les caractères non conformes en caractères compatibles avec les exigences de l'xhtml strict.

Pour ce faire, tu as 2 solutions :

- enregistrer dans la BDD les caractères originaux (et pouvant êtres non conformes) et appeler une fonction qui sera chargée de les remplacer, lors de l'affichage des données.

- appeler la fonction de remplacement de caractères avant l'enregistrement dans la BDD.

Je t'ai donné quelques caractères à remplacer. Pour faire bien, il faudrait tenir compte de l'ensemble des caractères énumérés sur le site d'OpenWeb, dont je t'ai indiqué le lien.

A ce jour, je ne vois pas d'autres solution. S'il faut contrôler la saisie des rédacteurs, il faut malheureusement en passer par là.

Une autre solution serait d'utiliser des formulaires en Flash (je vais faire bondir les intégristes de l'accessibilité). Je travaille actuellement sur un petit éditeur Fash, qui permet de styler du texte. Si l'utilisateur ne dispose pas de Flash, c'est un simple textarea qui s'affiche. Mais c'est destiné à un backoffice, et il est donc acceptable de conseiller une configuration minimale, contrairement au frontend. L'emploi d'un tel champ Flash est, de mon point de vue, bien plus fiable et ergonomique que tous les htmlArea ou autres FCKeditor... Mais ce n'est qu'un point de vue subjectif...

A+

Yhann.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

J'ai enfin compris ...

A l'origine je pensais à un problème d'interclassement sur la bdd, n'étant pas vraiment un spécialiste, c'est pour cela que j'ai demandé un coup de main mais suite à vos réponses et en faisant tourné mon neurone à 110%, je me suis aperçu que sur certaines pages, la validation passait malgrès les ' (je venais juste de finir la reprise du code avec str_replace() !!).

Les textes invalides provenaient tous de copier coller du code de l'ancien site et du copier coller du client qui commence à fournir sa bdd !! Donc effectivement un chr(146) au lieu de 39 .M...ince !

Bon finalement ça m'a permis de juguler préventivement les importations de &, et d'autres bricoles dont sont friands les anglosaxons ainsi que des sauts de ligne ... Et surtout de me méfier encore plus des copier/coller !

Merci encore.

Si vous voulez jeter un oeil la maquette est :

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...