5568 sujets

Sémantique web et HTML

Bonjour voilà je commence à en avoir assez de tourner en rond et je viens donc (encore) demander de l'aide.

J'ai un formulaire tout bête qui envoie une ligne de texte dans une base de données via AJAX et une page php.

mais... Pourquoi viens-je poster dans la catégorie HTML ? Et bien ... en fait.

j'ai mon formulaire


<form name="titrepage" id="titrepage" method="POST" action="#">


Et si je met par exemple : é
Il m'enregistre dans ma base é

Htmlentities specialchars et compagnie ne donnent rien.

Mais il me semble me souvenir qu'il y'a une facon de "normaliser" un formulaire.... Mais impossible de me souvenir comment ni de trouver sur google.

J'ai bien essayé un :


<form name="titrepage" id="titrepage" method="POST" action="#" language="french" accept-charset="iso-8859-1">


mais.... J'ai toujours mes deux caractères spéciaux dans la base.

Si vous savez ... passez par ici ^^
Modifié par ffwrude (08 Nov 2006 - 12:39)
Administrateur
Bonjour,

si tu affiches ce que tu reçois du formulaire, est-ce affiché avec le bon encodage? Ou est-ce après avoir fait un voyage A/R dans la BDD?
Bonjour à toi et merci.

J'ai fait un écho de ma valeur dans ma page php. un echo avant et apres le htmlentities (ou le specialchars) et un echo de la requete

je les récupères en response text en ajax.

il m'écris

Titre = é
Titre avant HTML ENTITIES = é
Titre après HTML ENTITIES = é
REQUETTE nianianianiania titre = 'é'

Et dans la base j'ai un truc Atilde Copyright.

(dsl c'est parti dans le php et l'ajax et je suis dans le forum HTML).

j'affiche la value de mon formulaire après un select dans ma base

donc... la value du input est aussi Atilde Copyright


edit : Ah oui lol la meilleure aussi. Lorsque le htmlentities fonctionne correctement... Il m'affiche les codes html du Atilde et du copyright dans la base ^^
Modifié par ffwrude (07 Nov 2006 - 17:35)
Ton problème de caractères spéciaux vient du fait que ton "é" a été codé en UTF-8 (cf Wikipedia), donc sur 2 caractères, comme tous les caractères dont la valeur est > 127 .

Il y a quelque part une incompatibilité dans ton système. Soit tout est en UTF-8, soit tout est en ISO-8859-1[5] . Peut-être que ta base de données n'est pas configurée correctement par rapport à ton site Web. NB: si tu te mets en UTF-8 partout, dans ta base il y aura toujours les 2 caractères Atilde Copyright, selon la façon dont tu regardes le contenu.

NB: en bon français on parle de codage, pas d'encodage.
Hum... Et bien le problème c'est que j'ai sur d'autres page des formulaires complètement similaires qui INSERT bien dans la base les bonnes choses....

Dois-je mettre quelque chose à la suite du formulaire pour que celui ci convertisse l'UTF-8 en ... autre chose ? (je ne suis pas très familier des charset).

Rude
Et bah en fait merci car j'ai creusé dans cette piste j'ai donc remplacé le html entities par


$titrepage = UTF8_decode($titrepage);


Et puis il met des caractères spéciaux dans le INSERT (quand je l'affiche) mais ... il m'insere la bonne chose dans la base.

Merci Bien Mister J

Rude