Elseif qui n'est pas pris en compte !

Résolu
cs_ripmaster Messages postés 11 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 décembre 2007 - 24 févr. 2007 à 18:05
cs_ripmaster Messages postés 11 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 décembre 2007 - 24 févr. 2007 à 18:49
Bonjour, je suis débutant et j'ai un petit problème...
J'ai fait un formulaire avec 3 champs : nom, e-mail et le message dans une page html. Une fois que l'utilisateur clique sur "envoyer", ça lance une page php qui vérifie d'abord si les champs sont vides, ensuite vérifie (vite fait) si le mail a une bonne structure et enfin si tout est bon, il envoie le formulaire par mail.
Voici le code php :

if (empty($_POST['nom']) || empty($_POST['email']) || empty($_POST['message']))
{
    include('erreurchamp.htm'); //ici si un des champs n'est pas rempli, il renvoie à cette page
    exit;
}
elseif (strpos($_POST['email'],".") || (strpos($_POST['email'],"@")))
{
    include('erreurmail.htm'); //ici si un des champs n'est pas rempli, il devrait renvoyer à cette page
    exit;
}
else
{
 // code d'envoi du mail (fonctionne bien)
}

Tout fonctionne bien SAUF qu'une fois que le premier if est validé (pour les champs vides), il ne tiend pas compte du second (qui vérifie la bonne structure de l'adresse mail) et passe directement à l'envoi du mail...
Quelqu'un pourrait-il m'aider?

Merci d'avance !

3 réponses

cs_ripmaster Messages postés 11 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 décembre 2007
24 févr. 2007 à 18:49
EDIT 3 :

Alors merci à moi-même  !
En fait il fallait faire (pour ceux que ça intéresserait par la suite) :

if (empty($_POST['nom']) || empty($_POST['email']) || empty($_POST['message']))
{
    include('erreurchamp.htm'); //ici si un des champs n'est pas rempli, il renvoie à cette page
    exit;
}
elseif (strpos($_POST['email'],".") && (strpos($_POST['email'],"@")))
{
  // code d'envoi du mail (fonctionne bien)
}
else
{
   include('erreurmail.htm'); //ici si un des champs n'est pas rempli, il devrait renvoyer à cette page

   exit;
}

en gros, inverser ce qu'il y a dans le elseif et dans le else
3
cs_ripmaster Messages postés 11 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 décembre 2007
24 févr. 2007 à 18:30
EDIT :

elseif (strpos($_POST['email'],".") || (strpos($_POST['email'],"@")))         //cette ligne me permet juste de vérifier si il y a au moins un point et un arobase dans l'e-mail qui a été saisi
0
cs_ripmaster Messages postés 11 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 décembre 2007
24 févr. 2007 à 18:41
EDIT 2 :

Bon en fait honte à moi ça ne chargeait pas la page "erreurmail.htm" car il fallait qu'il y ait un point ou un arobase dans l'adresse...
Cependant, j'aimerai modifier cette ligne pour avoir quelque chose comme : "si il n'y a pas de point ou de arobase, s'arrêter là et renvoyer à la page erreurmail.htm" (ça c'est le concept maintenant si quelqu'un peut m'aider à l'adapter dans mon code...)
0
Rejoignez-nous