Formulaire PHP & UTF-8

dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009 - 11 juil. 2007 à 08:57
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 - 22 juil. 2007 à 15:12
Bonjour!

Je cherche à :
Soit enregistrer dans une table mysql sans altération du UTF-8 unicode saisi sous formulaire php ou alors bloquer la saisie unicode et n'authoriser que l'ASCII de base...

Actuellement, j'ai configuré ma page et tables mysql en UTF-8 mais impossible de lire les caractères étendus postés...

Je débute, et avoue faire du "sur-place"... Quelqu'un peut-il m'aider svp?

David

4 réponses

Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
11 juil. 2007 à 12:50
mais ton problème il est où ?? Quand tu affiches les caractères? ou lors de l'enregistrement?

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
0
dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009
11 juil. 2007 à 13:29
C'est pas très clair, c'est vrai...

Cas concret:
Un utilisateur affiche ma page encodée UTF-8 et rempli avec des caractères cyriliques. Il poste le formulaire avec le bouton submit...
Maintenant, j'ouvre la base de donnée via mysql admin et j'ai... des hiéroglyphes à la place des caractères cyriliques :/
Si je demande l'affiche sur une page UTF-8 des données relatives à ce même formulaire, j'ai toujours les mêmes hiéroglyhes, exit les beaux caractères!

Une idée quelconque?

David
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
11 juil. 2007 à 14:49
Avant d'insérer dans la base tu peux faire un utf8_encode($le_texte); et ensuite quand tu affiches tu dois spécifier avec la fonction header que tu vas afficher de l'UTF-8. Tu peux aussi le faire avec de l'html dans le head tu met : <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
22 juil. 2007 à 15:12
Et si ce que Yoteco à dit ne règle pas le problème, ben tu peux utiliser ça:

<hr size="2" width="100%" />while (list($key, $val) = each($_POST)){
                            $post["$key"] = str_replace("\'", "'", htmlentities($val, ENT_COMPAT, 'UTF-8'));
}
<hr size="2" width="100%" />ou (pour les variables en $_GET):
<hr size="2" width="100%" />while (list($key, $val) = each($_GET)){
                            $get["$key"] = str_replace("\'", "'", htmlentities($val, ENT_COMPAT, 'UTF-8'));
}
<hr size="2" width="100%" />
par après tu dois utiliser $post['clef'] et/ou $get['clef'] dans ton script pour lire les variables recodées (en plus les problèmes de signes [éèàç&....] sont tous directement règles ^^

Allé! Bonne journée!
0
Rejoignez-nous