Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
hop,
Je m'en viens de nouveau quérir de nouvelles connaissances ici
Voila mon probleme :
Un formulaire tout simple, passés là dedans :
<?php $filters = array( 'login' => 'StringToLower', 'passwd' => 'StringToLower' ); $validators = array( '*' => array(Zend_Filter_Input::PRESENCE => 'required'), ); ?>
Le Zend_filter_input là dessus est réalisé par :
$e = new Zend_Filter_Input($formt->getfilters(),$formt->getValidators(),$_POST,$formt->getOptions());
Jusque là ca va bien
pas longtemps malheuresement :
Lorsque je fait un
var_dump($e->getEscaped() );
et que je met des accents, ca me donne :
["passwd"]=> string(42) "ã©ã©ã©"
Donc apparement, le getEscaped ne me renverrais pas de l'UTF8 (fichier/page sont en utf8)
j'ai rajouté cette ligne là , juste en dessous de mon new Zend_filter_input :
$e->setDefaultEscapeFilter(new Zend_Filter_HtmlEntities(ENT_COMPAT,'utf-8'));
Cependant, avec ca, je ne recois plus rien ^^
Et si j'utilise pas le getEscaped, mais getUnescaped a la place, j'obtiens un magnifique : ["passwd"]=> string(6) "���"
En fait , j'ai l'impression que lorsque je traite des données en spécifiant que je veux de l'UTF8, il me les affiche en ISO, et lorsque je ne le spécifie pas, il me les affiche en UTF8 ......
Moi qui voulais juste les accents tout en protégeant contre les ' et autres caracteres spéciaux
C'est grave docteur ?
Hors ligne
En cherchant par là http://www.z-f.fr/forum/viewtopic.php?id=783 tu trouvera surement une réponse...
Regarde au début de la page 2.
Hors ligne
Ouep j'avais lu ce post, mais j'y avais pensé, mon overload est deja a 7 ...
Au pire j'utilise le getUnescaped avec un StringTrim, il me renvoi bien les accents et backslashe les apostrophes, mais bon étrange quand meme.
Dernière modification par stf (22-04-2008 11:49:31)
Hors ligne
Personnelement, dans mon bootstrap, j'ai un "iconv_set_encoding('internal_encoding', 'utf-8');" qui permet d'utiliser l'utf-8 pour les fonctions sur les chaines de caracteres.
J'utilise cette fonction car en regardant du côté d'un "Zend_Validate_StringLength::isValid", Zend utilise la fonction "iconv_strlen" pour connaitre la taille d'une chaine. J'ai donc présumé utilisé le bon parametre. Est-ce normal qu'avec "mb" ça fonctionne ? Je vais creuser le problème
Source : http://www.z-f.fr/forum/viewtopic.php?pid=5743#p5743
Dernière modification par apsy (22-04-2008 14:25:00)
Hors ligne