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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : j'ai un petit souci avec mes test if et switch

par brani » 04 déc. 2005, 19:11

Merci beaucoup pour votre aide et vos conseils

ca marche impecable

:D

par jobherzt » 04 déc. 2005, 18:58

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
}

par Cyrano » 04 déc. 2005, 18:58

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>";
}
?>

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

par brani » 04 déc. 2005, 18:51

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.