email et liste déroulante

Eléphanteau du PHP | 22 Messages

27 janv. 2011, 02:53

Bonjour tout le monde,

voici mon problème:

j'envoie les résultats d'un formulaire par la fonction mail()...ou plus exactement Phpmailer.
tout fonctionne parfaitement, sauf que : j'ai mis en place une liste déroulante contenant des adresses emails ,issues d'une base de données, qui doit servir de choix pour l'envoie en copie du fameux formulaire, or celui-ci ne fonctionne QUE dans le cas suivant :


page cible:
$email_copie = $_POST['email_copie'];

$q = mysql_query("SELECT email FROM MAIL_CC where email LIKE '".$email_copie."%'"); 
while ($r = mysql_fetch_array($q)) {
	$email_copie = $r['email'];

} 

or je voudrais que :
if (isset($_POST['email_copie']) && $_POST['email_copie'] = 'Choix du Contact')
	{
  		 $email_copie = '';
	}
	else
	{
  		 $email_copie = $_POST['email_copie'];
	} 

$q = mysql_query("SELECT email FROM MAIL_CC where email LIKE '".$email_copie."%'"); 
while ($r = mysql_fetch_array($q)) {
	$email_copie = $r['email'];

}

autrement dit avec le dernier code, ci-dessus, je souhaite que si l'on choisie "Choix du Contact" alors pas d'envoi du mail en copie sinon on envoie. Or le "on envoie" ne fonctionne pas, l'envoi en copie du mail choisie dans la liste déroulante ne fonctionne pas.


je vous donne le code qui me sert à générer la liste déroulante qui vous aidera à mieux comprendre l'ensemble.

page source :
$sql = " SELECT email FROM MAIL_CC ";
$result = mysql_query($sql) or die("Requete incorrect");


<label for="form_cc_email"></label>
   <select name="email_copie">
   <option>Choix du Contact</option>
<?php
while ($row=mysql_fetch_array($result))
{
echo"<option value=$row[0]>$row[0]</option>";
}
?>
</select>
(j'ai élagué au maximum le code : est-ce de trop?)
j'espère avoir été à peu près clair à une heure ou les idées le sont de moins en moins.

Merci pour votre aide et à très vite.

ViPHP
ViPHP | 3607 Messages

27 janv. 2011, 10:12

Bonjour,

C'est tout à fait normal... Première faute, tu as mis un simple "=" dans ta condition...
Ce qui fait que tu affecte la chaîne 'Choix du Contact' à ta variable au lieu de tester l'égalité.
Ensuite je verrais plutôt le test comme ça :
Tu demandes:
// si la variable post existe et n'est pas vide
// et qu'elle est différente de la valeur 'Choix du Contact'
// alors on initialise $email_copie
if (!empty($_POST['email_copie']) && $_POST['email_copie'] != 'Choix du Contact')
{
	$email_copie = $_POST['email_copie'];
}
// sinon ça veut dire qu'on ne demande pas de copie
else
{
	$email_copie = '';
} 
Tu pourrais même rajouter dans ton premier if() un test de validité de l'adresse email ...

Eléphanteau du PHP | 22 Messages

27 janv. 2011, 11:04

Bonjour

merci à toi pour cette réponse qui a résolu mon problème!!

ViPHP
ViPHP | 3607 Messages

27 janv. 2011, 11:13

Y a pas de quoi ;)
Bonne continuation avec php!