[PHP] Tableaux, Boucles, ereg()

Fermé
BeFLuo Messages postés 10 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 21 mai 2008 - 20 mai 2008 à 13:12
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 21 mai 2008 à 12:44
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

5 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 mai 2008 à 13:24
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 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 21 mai 2008 1
20 mai 2008 à 14:50
Merci mais j'ai une vieille version de php et il ne reconnait pas la fonction
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 mai 2008 à 18:24
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 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 21 mai 2008 1
21 mai 2008 à 08:24
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 mai 2008 à 12:44
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