Page 1 sur 1

[Résolu] Validation e-mail et téléphone

Posté : 04 oct. 2011, 21:00
par brother
Bonjour,

Je valide un e-mail comme ceci et ça fonctionne :lol: :
   
         elseif  
        (empty($_POST["mail"])) { 
 
                 $erreur="Saisissez votre adresse email..."; 
        } 	
           elseif 
		(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["mail"])){ 
               
  $erreur="Votre adresse e-mail n'est pas valide..."; 
        }
Suite à quoi je valide le téléphone comme ceci, mais ça ne fonctionne pas #-o :
	        elseif 
   (empty($_POST["telephone"])) { 

                 $erreur="Saisissez votre téléphone..."; 
        }
			elseif 
		(!eregi("^\d{10}$",$_POST["telephone"])){ 

               $erreur="Le téléphone doit comporter dix chiffres..."; 
      }
Comment réaliser cette manip.. pour contrôler les dix chiffres ?

Merci

Re: Validation e-mail et téléphone

Posté : 04 oct. 2011, 21:11
par moogli
Salut,

Il s'agit d'une seule série de if elseif else ?

Si oui ce n'est pas bon dès qu'une condition est validé les autres ne sont pas testée.

Tu ne devrais pas utiliser les fonctions ereg* elles sont dépréciée (vouées a disparaitre un jour) les fonctions preg_* sont la pour les remplacer.

Montre nous la page complète que l'on puisse voir la chose dans sont ensemble :)

@+

Re: Validation e-mail et téléphone

Posté : 04 oct. 2011, 21:14
par brother
:oops: désolé,

En faisant différents essais j'ai trouvé cette solution :

(!preg_match("#(\+[0-9]{2}\([0-9]\))?[0-9]{10}#",$_POST["telephone"])){ 

Merci

Comment fait-on pour mettre résolu ?

Re: Validation e-mail et téléphone

Posté : 04 oct. 2011, 23:51
par Cyrano
Comment fait-on pour mettre résolu ?
Édite le premier post et ajoute [Résolu] en début du titre :)

Re: Validation e-mail et téléphone

Posté : 05 oct. 2011, 11:55
par Mazarini
Bonjour,

Plutôt que les elseif, je préfère :
switch (true) {    // ou false selon comment on teste
   case condition1 :
        $erreur = "sdfsdfsdfsdfs";
        break;
   case condition2 :
        $erreur = "sdfsdfsdfsdfs";
        break;
   default :
       $erreur = "";
}
Ca me semble plus simple à lire.

Re: Validation e-mail et téléphone

Posté : 05 oct. 2011, 16:08
par brother
Bonjour,

J’ai besoin de l’avis d’un pro…
Afin d’améliorer la protection d’un formulaire, je viens de lire ceci :
La seule technique qui empêche le déplacement de formulaire consiste à donner une durée de vie à ce dernier.
Lors de l’affichage du formulaire, on ajoute un champ invisible de type date avec une date d’expiration ou la date de production du formulaire.

Code : Tout sélectionner

<input type="hidden" name="date" value="2007-01-06 15 :21 :00">
Pour compliquer la tâche du pirate, on utilise une valeur chiffrée ou signée. Si la valeur est chiffrée, vous ne pourrez la déchiffrer qu’avec la clé ad hoc.
Il est aussi possible d’utiliser une date signée : elle n’est plus déchiffrable, mais toujours utilisable. Par exemple, pour donner une durée de vie de 10 minutes à un formulaire, vous pouvez signer la date avec MD5, comme ceci :
// Publication du formulaire
$date = md5('SeL'.date("Y-m-d h:i:00");
Après soumission du formulaire, vous devrez tester sa validité. Comme MD5 n’est pas déchiffrable, vous pourrez simplement tester si elle fait partie des 10 valeurs possibles, comme ceci :
// test du formulaire
$validite = range(0, 10) ;
$valide = false ;
foreach($validite as $v) {
$valide |= ($_POST['date'] ==
md5('SeL'.date('Y-m-d h:i:00 ", mktime() + $v * 60));
}
J’ai bien compris que le champ invisible vient ce placer à la fin du formulaire… Je pense !
Comment et ou placer l'ensemble du code php ?

Dois-je le placer entre les guillements de value="<?php ici le code ?>" ?


Merci bien pour ce bout de code plus propre...

Bien cordialement

Re: Validation e-mail et téléphone

Posté : 05 oct. 2011, 17:31
par AB
Oui, rien de particulier, c'est une valeur que tu mets dans un champ du formulaire, et ensuite tu contrôle sa validité (comme les autre valeurs du post).

Sinon pour contrôler un mail il y a une fonction dédiée php en utilisant filter_var
if (filter_var('[email protected]', FILTER_VALIDATE_EMAIL))

Re: [Résolu] Validation e-mail et téléphone

Posté : 05 oct. 2011, 18:07
par brother
Merci pour tous ces renseignements..