[PHP] Tableaux, Boucles, ereg()
BeFLuo
Messages postés
10
Statut
Membre
-
kilian Messages postés 8854 Statut Modérateur -
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
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:
- [PHP] Tableaux, Boucles, ereg()
- Easy php - Télécharger - Divers Web & Internet
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Expert php pinterest - Télécharger - Langages
- Les tableaux word - Guide
5 réponses
Salut,
Pour vérifier si une adresse email est valide, ya plus simple:
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
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
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.
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.
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 !
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 !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question