[PHP] Tableaux, Boucles, ereg()

BeFLuo Messages postés 10 Statut Membre -  
kilian Messages postés 8854 Statut Modérateur -
Bonjour,

Tout d'abord merci à ceux qui me liront.

Pour mon stage, je dois ajouter à un fichier texte une liste d'emails non valides (arrêt d'une newsletter par exemple).
Pour ce faire, je récupère dans un tableau tout les mails invalides du fichier texte, dans un autre tableau je récupère la liste de mails entrés dans le formulaire. Ensuite dans ma variable $texte j'écris les deux tableaux l'un à la suite de l'autre dans le même fichier texte.
De plus les mails entrés dans le formulaires doivent être corrects (xxx.xxx@xxx.xx) et ne doivent pas déjà figurer dans la liste. Et c'est la que mon problème intervient voici un bout de mon code :

$nb_form=sizeof($tableau_form); //Taill du tableau où je récupère les mails entrés
$nb_text=sizeof($tableau_text); //Taille du tableau ou je récupère les mails du fichier texte
$tableau_fin=$nb_form+$nb_text; //Taille du tableau final

for($i=0;$i<=($nb_form)-1;$i++){
if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $tableau_form[$i])){
echo "MAIL VALIDE";
$verif = 1;
if (!in_array($tableau_form[$i],$tableau)){
for ($j=$nb_text;$j<=$res-1;$j++){
$tableau[$j] = $liste_ex[$j-$nb_tableau];
}
}
}else echo "MAIL NON VALIDE";
}

Mon problème est qu'il ne fait pas la vérification du mail ainsi que la vérification de l'existence du mail.

J'ai essayé d'être le plus clair possible. Merci pour vos réponses
A voir également:

5 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Pour vérifier si une adresse email est valide, ya plus simple:
if (filter_var($mail, FILTER_VALIDATE_EMAIL)){
      //Adresse valide
}

Si $mail est une adresse email correcte, filer_var renvoie $mail, sinon il renvoie FALSE

https://www.php.net/manual/fr/function.filter-var.php
0
BeFLuo Messages postés 10 Statut Membre 1
 
Merci mais j'ai une vieille version de php et il ne reconnait pas la fonction
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Ok.
Mais je viens de comprendre un truc: en fait il vérifie bien la syntaxe du mail (j'ai vérifié ton expression régulère, elle marche bien) mais toi tu veux vérifier l'existence de l'adresse, c'est ça?

Ben c'est impossible. Tu peux éventuellement vérifier l'existence du nom de domaine (ce qui est après l'arobase) mais pas l'existence de toute l'adresse.
0
BeFLuo Messages postés 10 Statut Membre 1
 
Non du tout, juste vérifier si l'adresse est valide (du type xxx.xxx@xxx.xx ou xxx@xxx.xxx) et si elle n'existe pas dans la liste de mails invalides. J'ai l'impression que les fonctions eregi() et in_array ne fonctionnent pas dans ma boucle for.

Lorsque je teste ces deux fonctions en dehors de la boucle elles fonctionnent correctement, seulement lorsque je leur
passe en paramètre mon tableau $tableau_form ça en passe pas !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8854 Statut Modérateur 1 526
 
Tu peux faire un var_export ou var_dump pour vérifier ce qu'il y a dans $tableau_form[$i] en dessous du for.
0