Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2008, 11h38   #1
Invité de passage
 
Inscription : juin 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 13
Points : 4
Points : 4
Par défaut pb "#" dans zend_filter_input

Bonjour,
j'ai un sérieux soucis avec zend. En fait j'ai une série de validators dans un zend_filter_input, et lorsque je saisie le caractère "#" dans l'un des champs à valider, le zend validate stop sont analyse sur le champs en question et ne traite pas les autres. C'est bizarre, non?
je ne parviens pas à trouver la solution à mon problème. Peut être dois je gérer cela avec un filtre regex?
merci d'avance pour celui qui aura la patience de me répondre.
humanzam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 14h16   #2
Membre confirmé
 
Développeur Web
Inscription : mai 2008
Messages : 185
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 185
Points : 212
Points : 212
Bonjour @_@
Tu utilise quoi comme types de filtres pour tes validateurs ? Alpha ou Alnum non ? vu que ceux si n'autorisent que A-Z, a-z ( et 0-9 pour Alnum )
Le plus simple que j'ai jusque la si tu veux accepter des caractères spéciaux c'est bien la Regex oui, sinon :/

Mais, ton validateur te renvoie des erreurs au moins ? ( avec getMessages() sur ton validateur ) parce qu'il est sensé tout valider et renvoyer toutes les erreurs, du moins je crois @_@ peut être pas si ta valeur est required :/

J'espère t'avoir répondu comme tu voulais
Bonne chance
LoveAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 14h28   #3
Invité de passage
 
Inscription : juin 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 13
Points : 4
Points : 4
Bonjour,

merci de te pencher sur mon problème. en fait le validateur est un NotEmpy tout simple. Il y en a plusieurs à la suite, mais quand je rentre un "#" dans l'un des champs, le contrôleur s'arrête à ce champs et n'envoie aucun message d'erreur. c'est fort dans le bizarre, et impossible de trouver quelqu'un qui a le même bug.
a+
humanzam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 17h42   #4
Membre confirmé
 
Développeur Web
Inscription : mai 2008
Messages : 185
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 185
Points : 212
Points : 212
Bonjour encore

Code :
1
2
3
		$v = new Zend_Validate_NotEmpty();
		$v -> isValid( '#' );
		var_dump(  $v ->getMessages() );
Ceci me renvoie un tableau vide, je pense que c'est équivalent à ce que tu fais ..
Tu devrais essayer de mettre à jour ZF, des fois que, mais sinon, je vois pas trop de quoi viens ton problème, essaye peut être un try catch autour de ton isValid, j'y crois pas mais bon
Sinon bah Regex :/
Bonne chance
LoveAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 20h42   #5
Invité de passage
 
Inscription : juin 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 13
Points : 4
Points : 4
Par défaut oui mais!!

ok ça te renvoie un array vide car le validator est seul. dans le cas d'un zend_filter_input avec une série de validator, zend framework arrete sont analyse au champs +1. il ne poursuit pas l'analyse des champs suivants. mon problème vient de là. pour l'instant j'empêche la saisie du caractère "#" par une instruction javascript. c'est un moindre mal. mais il va falloir que je trouve une solution. merci pour ton aide.
humanzam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2008, 11h21   #6
Membre confirmé
 
Développeur Web
Inscription : mai 2008
Messages : 185
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 185
Points : 212
Points : 212
Citation:
Envoyé par humanzam Voir le message
ok ça te renvoie un array vide car le validator est seul. dans le cas d'un zend_filter_input avec une série de validator, zend framework arrete sont analyse au champs +1. il ne poursuit pas l'analyse des champs suivants. mon problème vient de là. pour l'instant j'empêche la saisie du caractère "#" par une instruction javascript. c'est un moindre mal. mais il va falloir que je trouve une solution. merci pour ton aide.
Hm .. J'ai utilisé les Input Filter dans mon code .. Maintenant que tu le dit .. 2 champs à '' ( string vide ) dans un input filter avec 2 validator Float, il mettais que le premier .. Donc effectivement, tu as raison.
Sinon, dans ta DB, tu veux autoriser les # ? j'ai peut être une idée ( un peu conne mais bon ) le # est parfois utilisé comme limiteur de regex ... donc si il trouve un problème de ce genre la, la regex est incorrecte, et le validator renvoie une erreur :/
Donc, sinon, si tu veux vraiment autoriser les # dans ta valeur stockée, mais qu'il veux pas te les valider, tu fais ta validation sur un autre tableau que le vrai ^^ (en faite, tu crée une copie de ton tableau, dans laquelle tu vire tous les caractères spéciaux qui font planter Zend ( array_walk sur une fonction qui fais un str_replace par exemple, de # par un espace, ou n'importe quoi ( sauf du vide ) ) ), ensuite, tu valide ton tableau modifié, et tu réutilise ton tableau de base pour insérer les données et puis voila :p
Parce que on, quand même, le JS .. c'est bien, mais niveau sécurité, en 5 clics maxi ton script vaut plus rien :/

Bonne chance puis de rien pour l'aide ^^
LoveAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web