Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je me permets de poster car j'ai beau fouiner partout, je ne trouve aucune réponse à mon problème.
Je teste les différents composants depuis peu et j'ai déjà des soucis avec Zend_Validate_Alpha:
quand je rentre une chaine avec des accents, j'obtiens une erreur.
Comment puis-je faire pour lui dire que je veux inclure les accents dans mon controle Alpha?
Merci d'avance!
Dernière modification par Mel (24-04-2008 13:15:37)
Hors ligne
Bonjour,
Perso, je converti ma chaine en utf8 (je sais pas si c'est la meilleur solution), mais ca marche (pour l'instant )
edit : en fait ca ne semble pas/plus marcher
Dernière modification par ichevc02 (24-04-2008 12:01:01)
Hors ligne
Ah super! Du moment que ca marche, cette méthode me convient amplement!
Merci beaucoup!
Hors ligne
re ,
mon code que je croyais marchaé sous 1.0.3 (ou ne marchais peut-etre pas), ne fonctionne pas sous 1.5.1 .
j'edite mon message plus haut et j'efface le bout de code car ca ne marche pas/plus :-(
Hors ligne
Ok, pas de soucis, j'enlève le résolu
Hors ligne
D'accord, je fais comme ça; je pensais déjà avoir cherché avec ces mots-clés.
Merci!
Hors ligne
Bonjour,
j'ai fais une recherche alors les solutions :
mbstring.func_overload = 7 -> test sur 2 machine une avec mbstring activé et l'autre non
-> echec dans les 2 cas
-> iconv_set_encoding('internal_encoding', 'utf-8'); dans le bootstrap
-> echec.
mise a jour du code de filter sur avec la "branche" trunk du depot (j'ai vu qu'il uy a eu une mise a jur en debut de semaine)
-> echec.
j'ai un resultat surprenant :
zend_validate compare le retour du zend_filter avec la valeur qui lui ai passé.
j'appel zend validate avec :
if ($validator->isValid($reponse))
ou avec :
$reponse = utf8_encode($reponse); if ($validator->isValid($reponse))
si trace le zend_filter, j'obtient la meme chose :
var_dump(self::$_unicodeEnabled); var_dump(self::$_meansEnglishAlphabet); var_dump($pattern); var_dump($value); var_dump(preg_replace($pattern, '', (string) utf8_encode($value))); var_dump(preg_replace($pattern, '', (string) $value)); ob_flush(); die();
j'obtiens :
bool(true) bool(false) string(18) "/[^\p{L}\p{N}\s]/u" string(6) "cédric" string(7) "cédric" NULL
meme retour avec mbstring activé ou non (et overload a 7)
le validateur me renvoie false.
Dernière modification par ichevc02 (24-04-2008 15:38:09)
Hors ligne
Victoire
j'ai récupéré donc la version de filter sur le svn du zend framework .
Dans mon bootstrap j'ai ajouté:
Zend_Loader::loadClass('Zend_Locale'); Zend_Locale::setDefault('fr_FR');
(je ne sais pas si c'est indispensable , à tester)
dans mon appel :
Zend_Loader::loadClass('Zend_Validate_Alnum'); $validator = new Zend_Validate_Alnum(true); $reponse = utf8_encode((string) $reponse); if ($validator->isValid($reponse))
Attention : le cast en string est obligatoire sinon ca ne marche pas !
les caractères accentués passe nikel.
Ceci a été tester sur un serveur avec mbstring activé et un sans mnstring d'activé.
remarque : je n'ai pas spécifié d' iconv_set_encoding('internal_encoding'
lorsque je ne fais pas utf8_encode, même si je spécifie un internal encoding en utf8, par mbstring par le iconv_set_encoding, j'ai l'impression que l'encoding etait comme perdu.
et lorsque le Zend validate compare la valeur passé avec le retour du Zend_filter ce ne matchait jamais.
voila
Dernière modification par ichevc02 (24-04-2008 16:49:43)
Hors ligne
Fiou voilà une réponse bien copieuse. Merci beaucoup, cela va m'aider à avancer.
Hors ligne
je suis d'accord avec toi moox, si t'as une meilleur solution je suis preneur.
Hors ligne
Pages: 1