Page 1 sur 1

j'ai un petit souci avec mes test if et switch

Posté : 04 déc. 2005, 18:51
par brani
voila j'ai un probleme

tout d'abord voila mon script
<?php

if(isset($_POST)) {

switch ($_POST)	{

case $_POST['nom'] == NULL:
echo "<TD>Le champ nom est vide !</TD>";
break;

case $_POST['adresse_email'] == NULL:
echo "<TD>Le champ adresse e-mail est vide !</TD>";
break;

case $_POST['sujet'] == NULL:
echo "<TD>Le champ sujet est vide !</TD>";
break;

case $_POST['message'] == NULL:
echo "<TD>Le champ message est vide !</TD>";
break;


	}
 
	$to = "[email protected]";
    $subject = $_POST['sujet'];
    $message = $_POST['message'];
    $headers = "From: ".$_POST['adresse_email'] . "\r\n" .
    "Reply-To:" .$_POST['adresse_email'] . "\r\n" .
     "X-Mailer: PHP/" . phpversion();
     //mail($to, $subject, $message, $headers);
	 echo "<TD><span class='ok'>Votre message a bien été envoyer.</span></TD>";
	 echo "</TR></table>"; 
	 
}
?>
alors voila mon mail est coméme envoyer quand je clic sur envoyer alors que les champs ne sont pas rempli


par exemple je clic sur envoyer ca me met "Le champs ... est vide Votre message a bien été envoyer."

c'est bizar je narive pas a comprendre ce qui ce passe.

Posté : 04 déc. 2005, 18:58
par Cyrano
Logique : et l'utilisation du switch dans ce cas n'est pas approprié. Proposition de modification:
<?php
if(isset($_POST))
{
    $erreur = 0;
    if($_POST['nom'] == NULL)
    {
        echo "<TD>Le champ nom est vide !</TD>";
        $erreur++;
    }
    if($_POST['adresse_email'] == NULL)
    {
        echo "<TD>Le champ adresse e-mail est vide !</TD>";
        $erreur++;
    }
    if($_POST['sujet'] == NULL)
    {
        echo "<TD>Le champ sujet est vide !</TD>";
        $erreur++;
    }
    if($_POST['message'] == NULL)
    {
        echo "<TD>Le champ message est vide !</TD>";
        $erreur++;
    }
    if($erreur == 0)
    {
        $to = "[email protected]";
        $subject = $_POST['sujet'];
        $message = $_POST['message'];
        $headers = "From: ".$_POST['adresse_email'] . "\r\n" .
        "Reply-To:" .$_POST['adresse_email'] . "\r\n" .
        "X-Mailer: PHP/" . phpversion();
        //mail($to, $subject, $message, $headers);
    }
    echo "<TD><span class='ok'>Votre message a bien été envoyer.</span></TD>";
    echo "</TR></table>";
}
?>

Posté : 04 déc. 2005, 18:58
par jobherzt
c'est normal, dans ton code a aucun moment tu ne lui dit de ne pas envoyer le mail si une des conditions du switch n'est pas rempli. essaie comme ca : au debut de ton code, tu met une variable a 1, par exemple :
$correct =1;
ensuite dans ton switch, pour chacun des cas tu rajoutes :
$correct = 0;
et a la fin :
if($correct)
{
    //envoi du message
}

Posté : 04 déc. 2005, 19:11
par brani
Merci beaucoup pour votre aide et vos conseils

ca marche impecable

:D