Alimentation menu déroulant et envoi mail groupé

Résolu
angeldu74 Messages postés 37 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 5 juillet 2008 - 16 avril 2008 à 20:24
cs_Dawelle Messages postés 15 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 17 avril 2008 - 17 avril 2008 à 04:01
Alors tout d'abord, il faut que j'alimente un menu déroulant avec tout le contenu de ma table ANNEE. Alors si une année est sélectionnée toutes les personnes qui correspondent à cette année recevront un mail. Il faudra également envoyé un mail à tous les destinataires qui seront rajoutés manuellement.
Il y a deux fichiers différents, envMai.php ou je charge mon menu déroulant et envoi mon mail et ma fonctionMail qui permet de gérer l'envoi de tous les mails.
Voilà j'ai fait quelques petits trucs mais j'ai vraiment du mal, pourriez vous m'aider svp...

envMai.php:
<?php
/*
 * Created on 11 avr. 08
 */
 function envMai()
 {
  $titre = "Envoi Mail";
  $contenu =  "
" .
  "<form method='POST' action='./Controler/fonctionMail.php'>" .
  "" .
   "\" .
    \"----
Destinataire(s):, \" .
        \", \" .
    \"----
Envoi Groupé aux Etudiants:, \" .
        \"<select name='champ5' size='1'>" .
      "<option selected value='0'>- Non -</option>" .
      "<option value='Reponse5_1'>2007</option>" .
      "<option value='Reponse5_2'>2008</option>" .
      "<option value=Reponse5_3'>2009</option>" .
     ", \" .
    \"\" .
    \"----
Sujet:, \" .
        \", \" .
    \"----
Commentaires:
" .
       "<textarea COLS=50 ROWS=6 name=comments></textarea>" .
    ", \" .
   "
" .
   "
-" .
      "" .
  "</form>" .
"
" .
     "</form>";
  return array($titre,$contenu);
 }
?>

Et ma fonctionMail.php:
<?php
  $ip = $_SERVER['REMOTE_ADDR'];
  $date = date("d/m/y");
  $heure = date("h:i");
  $mail = $_POST['mail'];
  $sujet = $_POST['sujet'];
  $message = $_POST['message'];
  
  /**************************************************/
  
  $msg = "
Le $date à $heure
De $mail ($ip)
Sujet : $sujet
------------------------------------------------------------------
Message :
$message
  ";
  
  /**************************************************/
  $recipient = "[mailto:cyber.anthony@wanadoo.fr cyber.anthony@wanadoo.fr]"; //On met l'adresse email ou on veut recevoire le mail
  $subject = $sujet; //On met le sujet du mail
  $mailheaders = "From: Mon site web<> \n"; //depuis où il a été posté


  mail($recipient, $subject, $msg, $mailheaders); // message confirmation que le mail a bien été envoyé
  
  /**************************************************/
  
  echo "Message envoyé
";
 ?>


<!-- / message -->
<!-- attachments -->

3 réponses

cs_Dawelle Messages postés 15 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 17 avril 2008 1
16 avril 2008 à 21:05
Salut,

Dans envMai.php :

La fonction écrit un Formulaire, qui te permet ensuite de transmettre les infos du mail à la page fonctionMail.php, en vue de les envoyer.

A partir de la balise <form method='POST' ... > et jusqu'à la balise </form>, identifie toutes les occurrences de "name=" dans ta source. Elles définissent les champs de ton formulaire qui seront ensuite transmis à la page fonctionMail.php. Tu trouves :

-

- Destinataires :

- Envoi groupé étudiants : <select name='champ5' size='1'>

- Sujet :

- <textarea COLS=50 ROWS=6 name=comments></textarea>

Ensuite, dans ta page fonctionMail.php, tu peux récupérer leur valeur avec $_POST['nom_de_la_valeur']

tu constates alors que :

$mail = $_POST['mail'];
$sujet = $_POST['sujet'];
$message = $_POST['message'];
 
ne  font référence à aucun champ de ton formulaire dans envMai.php... il faut donc associer les noms des champs du formulaire, avec ceux que tu récupères dans fonctionMail.php.

Une fois que tout cela est fait, pour associer les années, il faut écrire un requête MySQL dans fonctionMail.php qui va chercher tous les e-mails associés à l'année envoyée par le formulaire.

Exemple : SELECT email FROM ma_table WHERE YEAR(birthdate) = "1990"

Mais je te laisse creuser un peu cette partie... ;-)
3
angeldu74 Messages postés 37 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 5 juillet 2008
16 avril 2008 à 22:44
Ok, je vais faire ça, merci beaucoup. Bon ça va être chaud pour la boucle, car il faut aussi gérer les mails qui sont rajoutés et qui seront séparés par un ';'.
Par contre tu fais comment pour alimenter le menu déroulant avec les années.
Aurais tu un petit exemple stp.
Merci encore pour ton aide. @+
0
cs_Dawelle Messages postés 15 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 17 avril 2008 1
17 avril 2008 à 04:01
tu peux faire une boucle, en partant de l'année courante: date('Y'), jusqu'à l'année minimum, par exemple 1900 :

<select name="year">
<?php

$now = date('Y');
for($i=$now; $i>1900; $i--) // tant que $i est supérieur à 1900, on diminue sa valeur de 1
{
    echo '<option value="'.$i.'">'.$i.'</option>';
}

?>
</select>

ou pour sélectionner les années présentes dans la bdd :

<?php

mysql_connect('localhost', 'nom_utilisateur', 'password');
mysql_select_db("nom_database");

$query = "SELECT DISTINCT YEAR(birthdate) FROM table";

$sql = mysql_query($query) or die($query.'
'.mysql_error());

mysql_close();

while($row = mysql_fetch_row($sql))
{
   



echo '<option value="'.$row[0].'">'.$row[0].'</option>';





}

?>
0
Rejoignez-nous