je suis débutante en PHP et j'ai un problème de ELSEIF
Je fais remplir un formulaire de contact: Nom, Email, message
le php devrait fonctionner comme ça:
Si les variables existent:
si email correct et tous les champs remplis: envoie du message
si un des champs vide: "il faut remplir tous les champs"
si email incorrect: "Email invalide"
sinon : "vérifiez vos champs"
Sinon : afficher le formulaire de départ
Mon problème avec le elseif est que si l'email est invalide il m'écrit: "il faut remplir tous les champs" au lieu de e-mail invalide. Si j'inverse les deux elseif, il signale les erreurs d'e-mail mais plus les champs vides... Je pense que je me plante sur une fonctionnalité du elseif mais je ne comprends pas laquelle. car quand il y a juste un problème incorrect, la première condition est fausse, la seconde aussi puisqu'aucun des champs n'est vide, donc la troisième condition devrait s'éxécuter...
(ensuite j'ai un problème d'inexistence d'array concernant le code d'envoie du mail mais je me dit que c'est peut être pcq je travaille sur wamp et pas sur le serveur direct parce que ça fonctionnait précédemment avec une page cible indépendante.)
Si vous pouvez me filer un coup de main ce serait drôlement gentil:
<div id="corps">
<H3>CONTACT</H3>
<?php
IF (Isset ($_POST['Nom']) AND Isset ( $_POST['Email']) AND isset ($_POST['message']))
{
IF (filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL) AND !empty($_POST['Nom']) AND !empty($_POST['message']))
{
$TO = "[email protected]";
$CC = "[email protected]";
$h = "De " .$_POST['Email'] ;
$subject = "Message pour Au chat va bien";
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS))
{
$message .= "$key : $val\n";
}
$dmessage= html_entity_decode($message);
mail($TO, $subject, $dmessage, $h);
mail($CC, $subject, $dmessage, $h);
?>
<p valign="middle"><center><h2>Votre message a bien été envoyé.<br> Je vous répondrai très rapidement.</h2></p>
<center><img src="images/thinkingcat.gif" ></center>
</div>
<?php
}
ELSEIF (empty($_POST['Nom']) OR empty($_POST['Email']) OR empty($POST['message']))
{
?>
<center><font color="red">Vous devez remplir tous les champs.</font></center><br>
<?php
include('Formcontact.php');
}
ELSEIF(!filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL))
{
?>
<center><font color="red">Votre E-mail est invalide.</font></center><br>
<?php
include('Formcontact.php');
}
ELSE
{
?>
<center><font color="red">Veuillez vérifier les champs.</font></center><br>
<?php
}
}
ELSE
{
include('Formcontact.php');
}
?>
</div>