2010-01-15 3 views
0

Je souhaite restreindre certains e-mails à mon site Web. Un exemple serait que je veux seulement les personnes avec des comptes gmail pour enregistrer sur mon site Web.formulaire d'inscription php - limiter les e-mails

{ 
    /* Check if valid email address */ 
    $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" 
      ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" 
      ."\.([a-z]{2,}){1}$"; 
    if(!eregi($regex,$subemail)){ 
     $form->setError($field, "* Email invalid"); 
    } 
    $subemail = stripslashes($subemail); 
    } 

c'est ce que j'ai jusqu'ici pour vérifier si c'est un email valide.

+0

Vous avez vous-même une question de programmation. Cette question sera déplacée vers Stack Overflow. Suivez le lien et continuez votre question là-bas. Pas besoin de republier. – random

+0

Utilisez les fonctions preg_xxx au lieu de ereg_xxxx. ereg est obsolète. –

Répondre

0

Je vous suggère de conserver un tableau de motifs regex avec lesquels vous souhaitez que l'adresse e-mail corresponde. puis écrivez une boucle pour parcourir le tableau et vérifier l'adresse. à chaque échec d'une vérification, définissez un indicateur de validation sur false. après la boucle, en vérifiant le drapeau de validation, vous pouvez vous assurer que l'adresse e-mail est exactement ce que vous voulez.

1

N'utilisez pas une seule regex pour vérifier l'adresse complète. Utilisez strrpos() diviser l'adresse en partie locale et nom de domaine, vérifiez-les séparément. Le domaine est facile à vérifier, la partie locale est presque impossible (et vous ne devriez même pas y faire attention).

0

Que diriez-vous de faire quelque chose comme:

list(,$domain) = explode('@',$email); 
if ($domain != 'gmail.com') 
    echo 'not possible to register'; 
else 
    echo 'Will register'; 

Si vous souhaitez valider l'e-mail utiliser les fonctions de filtre