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 12/04/2011, 12h35   #1
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Par défaut Validation numéro de téléphone

Bonjour,

Dans un formulaire, un champ devant contenir un numéro de téléphone.
Pour le valider, j'utilise d'abord
Code :
->addValidator('Digits', true)
.
J'aimerais aussi valider sa longueur à 10 chiffres mais le validator StringLength ne fonctionne pas pour les nombres.
Citation:
Envoyé par Doc ZF
75.2.27. StringLength

Ce validateur vérifie la longueur d'une chaine de caractères.
Zend_Validate_StringLength ne supporte que les chaines Zend_Validate_StringLength ne fonctionnera pas avec les entiers, flottants, les dates ou encore les objets.
J'essaie alors de faire la validation dans le contrôleur :
Code :
1
2
3
4
5
6
7
				// Validation numéro de téléphone
				if($values['prs_telephone'] != '' && strlen($values['prs_telephone']) != 10)
				{
					$erreur = 'Votre numéro de téléphone doit contenir 10 chiffres';
					$form->prs_telephone->addErrorMessage($erreur);
					$form->populate($formData);
				}
Mes tests montrent qu'un mauvais numéro de téléphone entraîne le passage dans le IF mais par contre le populate n'entraîne pas l'affichage de l'erreur.

Comment faire ?

Existe t-il un validator pour numéros de téléphones ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h28   #2
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Le plus simple je pense est de créer ton propre validateur, tu créé un validateur du style Zend_Validate_PhoneNumber et dedans tu vérifie la validité du tel via une simple expression régulière
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h36   #3
Membre actif
 
Avatar de shadypierre
 
Inscription : février 2009
Messages : 250
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : février 2009
Messages : 250
Points : 197
Points : 197
Et si tu es très motivié tu ajoute à cela la gestion des indicateurs en fonction du pays via Zend_Local et la tu deviens un chef et je te le pique comme ça j'ai pas à le faire xD
shadypierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h44   #4
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Citation:
Envoyé par shadypierre Voir le message
Et si tu es très motivié tu ajoute à cela la gestion des indicateurs en fonction du pays via Zend_Local et la tu deviens un chef et je te le pique comme ça j'ai pas à le faire xD
Très bonne idée, moi aussi je mettrait bien ça dans ma banque de codes s'il le fait
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h51   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Le projet contenant le besoin d'un validator de numéro de téléphone a été provisoirement mis de côté. J'y reviendrai sans doute à l'automne.

En attendant, je fais du Basic d'OpenOffice et du Drupal/MySQL.

Que cela ne vous empêche pas de vous coller à ce problème ; je serais heureux de bénéficier du code et vous aurez même l'honneur de le voir cité en bonne place sur mon blog !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 13h22   #6
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Citation:
Envoyé par CinePhil Voir le message
Le projet contenant le besoin d'un validator de numéro de téléphone a été provisoirement mis de côté. J'y reviendrai sans doute à l'automne.

En attendant, je fais du Basic d'OpenOffice et du Drupal/MySQL.

Que cela ne vous empêche pas de vous coller à ce problème ; je serais heureux de bénéficier du code et vous aurez même l'honneur de le voir cité en bonne place sur mon blog !
Bon je vais essayer de m'y coller cet aprem pendant que le patron est en réunion
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h26   #7
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Voila c'est fait, il faut ajouter la classe que j'ai mis en pièce jointe dans le dossier Zend/Validate.

Je n'ai mis que le format francais, et une ébauche du format américain (en fait pour le format américain je n'ai vérifié que si il y avait 10 chiffres ^^), pour les autres formats je ne les connais pas donc si tu veut en ajouter, ajoute l'expression régulière dans le switch de la fonction isValid

Pour l'utiliser il y a plusieurs moyens, soit tu instancie le validateur sans paramètre, dans ce cas il utilise le local présent dans le registre, soit tu lui passe un string contenant le locale voulu.
Exemple, pour valider un tel américain :
Code :
1
2
 
new Zend_Validate_PhoneNumber('en_US');
Voila, dit moi si ca te vas
Fichiers attachés
Type de fichier : php PhoneNumber.php (3,8 Ko, 25 affichages)
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 16h07   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Je verrai ça plus tard mais je te suggère de proposer ça aussi dans le forum ZF français, voire américain.
Ce sera sûrement utile à beaucoup.

__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h51.


 
 
 
 
Partenaires

Hébergement Web