IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mail/récupération données formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 12
    Points
    12
    Par défaut mail/récupération données formulaire
    Bonjour,
    Je souhaite envoyer un mail à tous les candidats (enregistrés dans une bdd) sélectionnés selon certains critères. Voici mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    $selection_recherche = mysql_query("SELECT * FROM CANDIDATS WHERE ".$reqwhere." ;");    
    //$reqwhere correspond aux critères sélectionnés
    // je veux donc recupérer le mail de chacun des candidats dans $selection_recherche
     
    $_SESSION['req'] = 'SELECT * FROM CANDIDATS WHERE '.$reqwhere;
     
    // Il s'agit d'une checkbox, soit on recherche soit si elle est cochée on envoie un mail aux personnes recherchées.
     
    if(!empty($_POST['mailing']))
    {
    while($data= mysql_fetch_array($selection_recherche))
    {  
     $sujet='blabla';
         $destinataire = $data['LOGIN_CANDIDAT']; //ce sont les mails souhaités
         $email_expediteur='azerty';
         $email_reply='azerty';
     
         $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
         $headers .= 'Return-Path: <'.$email_reply.'>'."\n";
         $headers .= 'MIME-Version: 1.0'."\n";
         $headers .= 'Content-Type: multipart/alternative'; 
     
         $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
         $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
         $message .= $message_html."\n\n";
         $message .= '--'.$frontiere."\n";
     
    mail($destinataire,$sujet,$message,$headers);
     
     
    	 if(mail($destinataire,$sujet,$message,$headers))
         {
             header('Location: ../view/mailingok.php');
         }
     
    	 else
         {
              header('Location: ../view/erreurmailing.php');
         }
    }	
    }
     
    	else
    	header('Location: ../view/listecandidatsrecherche.php');
    Je suis redirigé vers ma page d'erreur, et quand je fais des tests aucun message d'erreur n'apparait, j’obtiens une page blanche lorsque je veux afficher les LOGIN_CANDIDAT..
    La fonction mail me parait bien marcher et je l'ai précédemment testé avec mon adresse mail et je reçois bien un mail (vide car pas configuré php.ini mais avec le bon titre)

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mail($destinataire,$sujet,$message,$headers);
     if(mail($destinataire,$sujet,$message,$headers))
    ça, ça fait 2 envois de mail.

    Il faudrait retirer la redirection et afficher toutes les erreurs pour pouvoir avoir le retour de la fonction mail().

    vide car pas configuré php.ini mais avec le bon titre
    le php.ini ne change pas le contenu du mail.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 12
    Points
    12
    Par défaut
    C'est déjà ce que j'ai fais..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    	if(!empty($_POST['mailing']))
    {
    while($data= mysql_fetch_array($selection_recherche))
    {	
         //-----------------------------------------------
         //DECLARE LES VARIABLES
         //-----------------------------------------------
    	 $sujet='Casting Teleparis';
         $destinataire = $data['LOGIN_CANDIDAT'];
         $email_expediteur='Casting@teleparis.fr';
         $email_reply='f.galtier@teleparis.fr';
     
         $message_texte='Bonjour,'."\n\n".'Voici un message au format'; 
     
         $message_html='<html>
         <head>
         <title>Message HTML</title>
         </head>
         <body>Et yo clap clap tu clash black ap au Rc4</body>
         </html>';
     
         //-----------------------------------------------
         //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
         //-----------------------------------------------
     
         $frontiere = '-----=' . md5(uniqid(mt_rand()));
     
         //-----------------------------------------------
         //HEADERS DU MAIL
         //-----------------------------------------------
     
         $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
         $headers .= 'Return-Path: <'.$email_reply.'>'."\n";
         $headers .= 'MIME-Version: 1.0'."\n";
         $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
     
         //-----------------------------------------------
         //MESSAGE TEXTE
         //-----------------------------------------------
         $message = 'This is a multi-part message in MIME format.'."\n\n";
     
         $message .= '--'.$frontiere."\n";
         $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
         $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
         $message .= $message_texte."\n\n";
     
         //-----------------------------------------------
         //MESSAGE HTML
         //-----------------------------------------------
         $message .= '--'.$frontiere."\n";
         $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
         $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
         $message .= $message_html."\n\n";
     
         $message .= '--'.$frontiere."\n";
     
    	 mail($destinataire,$sujet,$message,$headers);
     
    	 /*if(mail($destinataire,$sujet,$message,$headers))
         {
             header('Location: ../view/mailingok.php');
         }
     
    	 else
         {
              header('Location: ../view/erreurmailing.php');
         }
    	 */
    	 }
    }
    Avec ceci, j'obtiens une page blanche..

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ajoute error_reporting(E_ALL); au début pour être sûr.

    Est-ce que tu reçois le mail lors de ce test ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 12
    Points
    12
    Par défaut
    Nan je ne reçois rien.. Peut être l'ais-je mis au mauvais endroit
    Avant le premier if ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Debug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    error_reporting(E_ALL);
    echo '<p>Début</p>';
    if(!empty($_POST['mailing']))
    {
    echo '<p>Premier if</p>';
    while($data= mysql_fetch_array($selection_recherche))
    {
    echo '<p>Fetch</p>';
    var_dump($data);

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 12
    Points
    12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    error_reporting(E_ALL);
    	echo '<p>Début</p>';
     
    	if(!empty($_POST['mailing']))
    {
    echo '<p>Premier if</p>';
    while($data= mysql_fetch_array($selection_recherche))
    {	
    echo '<p>Fetch</p>';
    var_dump($data);
     
     
         $destinataire = $data['LOGIN_CANDIDAT'];
     
    // ...............
     
    mail($destinataire,$sujet,$message,$headers);
    }
    }

    Renvoie page blanche avec:
    " Début

    Premier if "

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 12
    Points
    12
    Par défaut
    Donc $data n'est jamais égal à mysql_fetch_array($selection_recherche)...
    Et pourtant dans j'ai fais exprès de créer 2 candidats avec 2 adresses mails. Ce que je veux dire c'est que la requête est bonne, le problème vient du code php et non de la bdd..

    Merci en tout cas Sabotage je continue de creuser!

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut debuguer, toujours pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "SELECT * FROM CANDIDATS WHERE ".$reqwhere." ;"
    echo mysql_error();
    var_dump($selection_recherche);

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 12
    Points
    12
    Par défaut
    Pour ceux qui chercheraient encore:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $selection_recherche = mysql_query("SELECT * FROM CANDIDATS WHERE ".$reqwhere." ;");    
    	$_SESSION['req'] = 'SELECT * FROM CANDIDATS WHERE '.$reqwhere;
    	$result= mysql_query($_SESSION['req']);
     
    if(!empty($_POST['mailing']))
    {
     
    while($data = mysql_fetch_assoc($result))
    {
    echo $data['LOGIN_CANDIDAT'];

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupération données formulaire
    Par nocoment dans le forum Langage
    Réponses: 15
    Dernier message: 12/06/2007, 17h51
  2. Récupération donnée Formulaire
    Par n4rk0o dans le forum Langage
    Réponses: 1
    Dernier message: 23/04/2007, 18h19
  3. [SQL] php récupération données formulaire + requête sql
    Par cesoir dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 19/04/2007, 15h00
  4. HELP récupération données formulaire
    Par liichiii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 00h29
  5. Récupération données formulaire en php5
    Par jcaspar dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2006, 20h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo