Page 1 sur 1

condition sur champs vide

Posté : 09 juil. 2007, 14:38
par Chile
Bonjour,
j'ai mis en place un petit filtre sur une fonction mail()
Sur mon formulaire j'ai un champ mail (visible) et message (invisible)

Code : Tout sélectionner

<input name="email" type="text" id="email" size="12"> <textarea name="message" type="text" id="message" style="display:none"
la validation du formulaire renvoie sur une page ou j'ai une condition pour l'envoie du mail.
champ email rempli et champ message vide...ce qui donne
      if(($HTTP_POST_VARS['mail'] != FALSE) && ($HTTP_POST_VARS['message'] == ""))
         {
         mail($email,$sujet,$msg,$Headers);
         }
      else
         {
         echo "Erreur";
         }
mais lorsque j'execute en fournissant un email, j'ai le message erreur :(

est-ce que qlq sait ou ça plante ? voir meme comment améliorer ce code ?

merci

Re: condition sur champs vide

Posté : 09 juil. 2007, 14:45
par zeus
Bonjour,
  • tout d'abord, ton input pour l'adresse email se nomme "email", et tu essayes de récupérer $HTTP_POST_VARS['mail']
  • Ensuite, s'il rien n'est saisi, $HTTP_POST_VARS['mail'] contient une chaine vide et non pas FALSE.
    $HTTP_POST_VARS['mail'] != FALSE
    devient donc
    $HTTP_POST_VARS['mail'] != ''
  • De plus, la syntaxe $HTTP_POST_VARS est dépreciée, préfère utiliser $_POST
Ton code de vérification corrigé est donc le suivant :
if ( ($_POST['email'] != '') && ($_POST['message'] == "") )
{
	mail($email,$sujet,$msg,$Headers);
}
else
{
	echo "Erreur";
}
EDIT --
Je viens de voir que tu utilise la variable $email dans la fonction mail().
tu peut donc réécrire ton if de cette manière
if ( ($email != '') && ($_POST['message'] == "") )

Posté : 09 juil. 2007, 14:47
par Ryle
dans ton formulaire, le premier champ a pour nom "email" tandis que tu testes la valeur de $HTTP_POST_VARS['mail'] ;)

Ps : tu peux utiliser $_POST au lieu de $HTTP_POST_VARS :)

Edit : dammit !! non seulement i have been grilled, mais en plus il a eu le temps d'éditer son message avant que je ne poste le mien le rascal !! ;)

Posté : 09 juil. 2007, 14:49
par zeus
Edit : dammit !! non seulement i have been grilled, mais en plus il a eu le temps d'éditer son message avant que je ne poste le mien le rascal !! ;)
:langue: Le talent mon cher, le talent :lol:

Posté : 09 juil. 2007, 15:07
par Ryle
Ouais ben faut bien ça, parce que côté modestie.... ;) :langue:

Edit - Avertissement : le pourrissement de ce topic est réalisé par des modérateurs professionnels et le public n'est pas encouragé à faire de même ;)

Posté : 09 juil. 2007, 15:07
par Chile
merci à vous deux,
j'ai rectifié mon code (à force de tourner le code pour trouver une soluce je m'étais planté sur le champ (e)mail, mais il ne fonctionnait pas sans cet erreur).
J'espère que cela vient du False.
J'attends de voir si efficace contre spams avant de mettre résolu...

Posté : 09 juil. 2007, 15:09
par zeus
Disons que le problème que tu nous as soumis est résolu, non ?

Je pense qu'il faudrait que tu marques ce sujet résolu, quitte à en ouvrir un autre en faisant un lien vers celui-ci si tu continue à avoir du spam ;)

Posté : 09 juil. 2007, 15:11
par Chile
ok

Posté : 09 juil. 2007, 15:12
par zeus
Merci :pouce: :D