codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 19 janv. 2009 à 15:28
pour que mb fonctionne, il faut que l'extension soit activée. C'est le cas chez toi ?
strlen("ÓÔÕÖØ") retourne 10, c'est normal. Il faut attendre php6 (normallement php 5.3 devrait faire l'affaire) et le support de l'unicode pour que cela soit correctement pris en compte.
C'est une sorte de bug dû aux problèmes dans les divers langages parlés (à cause des accents). Et je te parle pas du japonais ! :p
J'avais un bon lien sur le sujet, mais je ne le retrouve plus :(
L'idée qu'il faut garder en mémoire, c'est que toutes les fonction str* ne fonctionnent pas avec les chaines "exotiques". il faut passer par leur équivalent avec mb_* (si cette extension est activée !)
whiskycoke
Messages postés3Date d'inscriptionmardi 16 décembre 2008StatutMembreDernière intervention19 janvier 2009 19 janv. 2009 à 14:33
j ai modifié :
- le code pour que l email soit vérifié avec la fonction filter_var()
- le contenu de la méthode valid_limit_string en mettant valid_limit_num(strlen($value)...
par contre pour ctype c est un peu basique.
pour les formats de chiffre un peu spéciaux comme 100'000 ou -5 ou +3 ou
pour les formats de string alphanum qui accepte les . ; ' je crois qu'il faut passer par les regular expression.
Je vais surement revoir mon regular expression pour le type "Alphanum" et préciser ce que j autorise plutôt que de préciser ce que je n'autorise pas.
j ai toujours le probleme :
strlen("ÓÔÕÖØ") me retourne 10
mb_strlen ne marche pas chez moi
si quelqu'un a une idée
whiskycoke
Messages postés3Date d'inscriptionmardi 16 décembre 2008StatutMembreDernière intervention19 janvier 2009 19 janv. 2009 à 11:06
merci pour tout vos conseils je met a jour des que possible
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 19 janv. 2009 à 10:06
Pour ma part, j'allais aussi parler de filter_var, mais vu que ca déjà été fait, j'ajouterai l'option "ctype" qui te permette de faire divers tests (très utile aussi quand on récupère des _GET/_POST/...) :
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 17 janv. 2009 à 17:44
Petite remarque d'optimisation, tes fonctions "valid_limit_num" et "valid_limit_string" font exactement la même chose à l'exception que dans "valid_limit_string" c'est la longueur de la valeur qui est testé. Tu pourrais résumer ta fonction "valid_limit_string" à ceci :
function valid_limit_string ($value,$value_min,$value_min_inclusive,$value_max,$value_max_inclusive) {
return $this->valid_limit_num(strlen($value),$value_min,$value_min_inclusive,$value_max,$value_max_inclusive);
}
whiskycoke
Messages postés3Date d'inscriptionmardi 16 décembre 2008StatutMembreDernière intervention19 janvier 2009 17 janv. 2009 à 17:30
T_T merci pour ta remarque plus que pertinente.
Je vais voir si je peux pas modifier mes classes pour y intégrer la fonction filter
cs_dorian91
Messages postés41Date d'inscriptionmardi 3 octobre 2006StatutMembreDernière intervention15 mars 2009 16 janv. 2009 à 19:58
Salut
Pour valider des données tu peux utiliser filter_var (http://fr.php.net/manual/fr/book.filter.php) C'est une fonction native donc plus rapide. Tu as des filtres pour toute sorte de donées (email, int, float; string, ip etc..)
Sinon j'ai pas regardé en profondeur mais c'est propre. Juste manque des commentairses dans tes classes
A+
19 janv. 2009 à 15:28
strlen("ÓÔÕÖØ") retourne 10, c'est normal. Il faut attendre php6 (normallement php 5.3 devrait faire l'affaire) et le support de l'unicode pour que cela soit correctement pris en compte.
C'est une sorte de bug dû aux problèmes dans les divers langages parlés (à cause des accents). Et je te parle pas du japonais ! :p
J'avais un bon lien sur le sujet, mais je ne le retrouve plus :(
L'idée qu'il faut garder en mémoire, c'est que toutes les fonction str* ne fonctionnent pas avec les chaines "exotiques". il faut passer par leur équivalent avec mb_* (si cette extension est activée !)
19 janv. 2009 à 14:33
- le code pour que l email soit vérifié avec la fonction filter_var()
- le contenu de la méthode valid_limit_string en mettant valid_limit_num(strlen($value)...
par contre pour ctype c est un peu basique.
pour les formats de chiffre un peu spéciaux comme 100'000 ou -5 ou +3 ou
pour les formats de string alphanum qui accepte les . ; ' je crois qu'il faut passer par les regular expression.
Je vais surement revoir mon regular expression pour le type "Alphanum" et préciser ce que j autorise plutôt que de préciser ce que je n'autorise pas.
j ai toujours le probleme :
strlen("ÓÔÕÖØ") me retourne 10
mb_strlen ne marche pas chez moi
si quelqu'un a une idée
19 janv. 2009 à 11:06
19 janv. 2009 à 10:06
http://fr.php.net/ctype
17 janv. 2009 à 17:44
function valid_limit_string ($value,$value_min,$value_min_inclusive,$value_max,$value_max_inclusive) {
return $this->valid_limit_num(strlen($value),$value_min,$value_min_inclusive,$value_max,$value_max_inclusive);
}
17 janv. 2009 à 17:30
Je vais voir si je peux pas modifier mes classes pour y intégrer la fonction filter
16 janv. 2009 à 19:58
Pour valider des données tu peux utiliser filter_var (http://fr.php.net/manual/fr/book.filter.php)
C'est une fonction native donc plus rapide. Tu as des filtres pour toute sorte de donées (email, int, float; string, ip etc..)
Sinon j'ai pas regardé en profondeur mais c'est propre. Juste manque des commentairses dans tes classes
A+