condition sur champs vide

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 : condition sur champs vide

par zeus » 09 juil. 2007, 15:12

Merci :pouce: :D

par Chile » 09 juil. 2007, 15:11

ok

par zeus » 09 juil. 2007, 15:09

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 ;)

par Chile » 09 juil. 2007, 15:07

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...

par Ryle » 09 juil. 2007, 15:07

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 ;)

par zeus » 09 juil. 2007, 14:49

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:

par Ryle » 09 juil. 2007, 14:47

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 !! ;)

Re: condition sur champs vide

par zeus » 09 juil. 2007, 14:45

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'] == "") )

condition sur champs vide

par Chile » 09 juil. 2007, 14:38

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