Condition if pour un envoi par email

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 if pour un envoi par email

Re: Condition if pour un envoi par email

par colo » 22 déc. 2011, 10:19

effectivement, le nombre de mails va augmenter prochainement donc ce sera mieux :D

enocre merci !! =D>

Re: Condition if pour un envoi par email

par Aureusms » 21 déc. 2011, 23:50

Je te conseillerai de tester via une variable tableau
$tabEmailAutorise = array( '[email protected]','[email protected]','[email protected]');
if (in_array(trim($email),$tabEmailAutorise)) {
mail("[email protected]","titre",$entete."<br>".$contenu."<br>".$pied, $headers);
}
else{
mail("[email protected]","titre 2 ".$user_email."",$entete."<br>".$contenu."<br>".$pied, $headers);
}
Cela te permet de mettre autant d'email a tester que tu veux et de les tester en une seule condition

Re: Condition if pour un envoi par email

par colo » 21 déc. 2011, 12:44

Effectivement, il n'y avait rien entre les // via echo.
J'ai donc re-regarder pour me rendre comtpe que j'avais confondu vendor_email et user_email.... :oops:

Avec mes excuses donc pour le dérangement !

Merci beaucoup pour votre aide et vos explications :)

++

Colo

Re: Condition if pour un envoi par email

par Mazarini » 21 déc. 2011, 11:40

Ajoutes un echo "/",$email,"/<br>" avant le if. A priori $email ne contient pas ce que tu penses.
En particulier, il peut y avoir un blanc au début ou à la fin ce que les "/" montreront.

Re: Condition if pour un envoi par email

par colo » 21 déc. 2011, 11:33

Bonjour,

Merci pour ton aide Calimero :)

Du coup, j'obtiens le code suivant :

Code : Tout sélectionner

if ($email == '[email protected]' OR $email == '[email protected]' OR $email == '[email protected]') { mail("[email protected]","titre",$entete."<br>".$contenu."<br>".$pied, $headers); } else{ mail("[email protected]","titre 2 ".$user_email."",$entete."<br>".$contenu."<br>".$pied, $headers); }
Mais la condition ne fonctionne pas, le mail est toujours envoyé à [email protected] m^me si $email est l'un des emails de la condition.
Avez-vous une idée de ce qui pourrais géner ?

Merci d'avance pour votre aide :)

Colo

Re: Condition if pour un envoi par email

par Calimero » 20 déc. 2011, 17:51

En php, OR est un opérateur logique (ce qui signifie qu'il ne sait travailler qu'avec deux types de valeurs, true ou false - les conversions nécessaires sont faites automatiquement).

Une chaîne de caractère non-vide s'évaluant toujours à true, ce if() :
if ($email == '[email protected]' OR '[email protected]' OR '[email protected]' OR '[email protected]') {
Equivaut pour php à :
if( $email == '[email protected]' OR true OR true OR true )
Le résultat étant donc toujours vrai.

Il ne faut donc pas faire l'économie des opérateurs == comme tu l'as fait, ce sont eux qui donnent du sens à chaque condition (qui sont ensuite calculées via les OR). C'est syntaxiquement correct, mais la signification est fausse :)

Correction :
if ($email == '[email protected]' OR $email == '[email protected]' OR $email == '[email protected]' OR $email == '[email protected]') {

Condition if pour un envoi par email

par colo » 20 déc. 2011, 17:38

Hello :)

Je cherche à faire une condition pour un envoi d'email sur l'email justement.
Sachant que globalement, j'ai 10 adresses que je dois filtrer et que toutes les autres partent à une autre destination.

Voici mon code

Code : Tout sélectionner

if ($email == '[email protected]' OR '[email protected]' OR '[email protected]' OR '[email protected]') { mail("[email protected]","Titre1",$entete."<br>".$contenu."<br>".$pied, $headers); } else{ mail("[email protected]","Titre2",$entete."<br>".$contenu."<br>".$pied, $headers); }
je n'ai pas d'erreur de syntaxe à première vue mais ma condition ne fonctionne pas.
Avez-vous une idée ? Merci pour vos remarques.

Colo