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

Langage PHP Discussion :

[Mail] Fonction mail() avec corps de message en php et html


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut [Mail] Fonction mail() avec corps de message en php et html
    Bonjour,

    Je veux envoyer un mail avec la fonction mail(). Dans le corps de mon message, il doit y avoir du html, et des variables php.

    Est ce que c'est possible de combiner du html plus du php dans la fonction mail?

    Merci d'avance pour vos réponses!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loreleï85
    Bonjour,

    Je veux envoyer un mail avec la fonction mail(). Dans le corps de mon message, il doit y avoir du html, et des variables php.

    Est ce que c'est possible de combiner du html plus du php dans la fonction mail?

    Merci d'avance pour vos réponses!
    Pourquoi pas ?

    Il te suffit de spécifier tes variables et ton contenu HTML dans le corps de message de ton script PHP (rien de particulier), et d'indiquer dans l'en-tête du message le content type et le charset (jeu de caractères) utilisés.

    Il y a quelques exemples sur http://www.php.net/mail

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    J'ai essayé mais je dois faire une erreur de syntaxe.

    Voilà un bout du code pour le corps du message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $body ='
    <html>
    <h1>Récapitulatif de votre commande :</h1>
    <br />
    <br />
    <br />
    <br />
    <span class="textnormalgras">Date de la commande : </span> echo $row_commande['date_commande'];

  4. #4
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut
    $body ='
    <html>
    <h1>Récapitulatif de votre commande :</h1>
    <br />
    <br />
    <br />
    <br />
    <span class="textnormalgras">Date de la commande : </span> echo $row_commande['date_commande'];
    ';
    tu utilise des simple cote pour définir ta chaine de char. Ors les variable php ne sont pas interpréter dans ces cas là.

    utilise plustot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $body = 'html' . $maVar . 'html' ;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $boby = "html $maVar html";
    nb : Un éditeur avec coloration syntaxique t'aurai fait piquée l'erruer dans les nyeux
    Orthographe => Message Privé constructif svp

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    jai reussi a faire passer mes variables dans le mail. Mais jai une boucle do while a faire passer dedans. Le problème cest quil fait comme si je navais pas de boucle.

    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $body = '
     
    <html>
    <body>
     
    <?php do{ ?>
    ...
     
    <?php }while('.$row_produit.' = mysql_fetch_array('.$produit.'));?>
    Si quelqun voit doù cela peut venir...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loreleï85
    jai reussi a faire passer mes variables dans le mail. Mais jai une boucle do while a faire passer dedans. Le problème cest quil fait comme si je navais pas de boucle.

    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $body = '
     
    <html>
    <body>
     
    <?php do{ ?>
    ...
     
    <?php }while('.$row_produit.' = mysql_fetch_array('.$produit.'));?>
    Si quelqun voit doù cela peut venir...
    Il semblerait qu'il y ait de des erreurs de conceptions (grossières)... :

    Dans ta condition while('.$row_produit.' = mysql_fetch_array('.$produit.')); l'utilisation des guillmets simples ('.) n'a pas de sens.

    Syntaxe correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <?php do{ ?>
    ...
     
    <?php }while($row_produit = mysql_fetch_array($produit));?>
    Et d'ailleurs, un while me raparait plus adéquat.

    Essaie plutôt quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    <?php
     while($row = mysql_fetch_array($produit))
    {
    
    // Traitement du résultat.
    } ?>


  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    J'ai essayé de ce que tu m'as donné. Mais ça ne marche pas mieux. Il fait comme si il n'y avait pas de boucle.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loreleï85
    J'ai essayé de ce que tu m'as donné. Mais ça ne marche pas mieux. Il fait comme si il n'y avait pas de boucle.
    C'est peut-être parcequ'il n'y aucun résultat à exploiter dans $produit (c'est le but du while : ne rien faire si il n'y a rien à faire !).

    Donne le code complet si tu veux une réponse complète.


  9. #9
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    Ma requête marche très bien. J'utilise plusieurs fois le résultat sans l'inclure dans un mail. Mais le problème c'est que lorsque je met cette boucle dans le mail, il donne juste un résultat alors qu'il y en a plusieurs.

    Voilà le code de ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $query_produit = "SELECT designation_produit, prix_produit, produit.id_produit, ligne_commande.id_produit, quantite FROM produit, ligne_commande WHERE ligne_commande.id_produit = produit.id_produit AND ligne_commande.id_commande = '".$_SESSION['id_commande']."'";
    $produit = mysql_query($query_produit, $aloa) or die(mysql_error());
    $row_produit = mysql_fetch_array($produit);
    Et voilà le code pour afficher les résultats dans le mail :

    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
     
     
    <?php while($row_produit = mysql_fetch_array($produit))
    {
    ?>
     
    <tr>
    <td width="213">
     
    '.$row_produit['designation_produit'].'
     
    </td>
     
    <td width="172">
     
    '.$row_produit['prix_produit'].'
     
    &euro; </td>
     
    <td width="182"> '.$row_produit['quantite'].'</td>
    </tr>
     
     <?php } ?>

  10. #10
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    Personne ne voit d'où cela peut venir?

    C'est assez urgent!

    MErci d'avance pour vos réponses!

  11. #11
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    mais tu fais 2 mysql_fetch_array ?

    je vois que tu as deux $row_produit[]

  12. #12
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    Non je n'en fais qu'un.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par drommk
    mais tu fais 2 mysql_fetch_array ?

    je vois que tu as deux $row_produit[]
    Ouais c'est ce que j'ai remarqué aussi...Mais c'est peut-être deux parties de script disctinctes...

    Et il n'y pas de raison que while retourne un seul résultat si y'en a plusieurs, puisque la condition est correcte. c'est dans la requête qui y'a un problème, dans son exécution ou quelque part AVANT ton while.

    Et je comprends toujours pas ton utilisation des guillmets simples, là on y a droit en dehors des balises PHP (dans de l'HTML ...) autant dire que c'est inutile.

    A mon avis, tu devrais commencer par maitriser la selection et l'affichage de données (à partir d'une base de données)...

    Tu n'aurais aucun soucis à faire ce que tu souhaites !

  14. #14
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    J'ai trouvé la solution. C'est juste qu'on ne peut pas mettre une boucle comme ça dans le body du message. J'ai juste fractionné mon body et mis la condition entre. Il n'y avait donc aucun problème dans ma requête ou avant mon while.

    Si j'utilise des cote c'est juste pour que php prenne en compte les variables (on le voit très bien avec un éditeur qui a la coloration syntaxique...).

    Je débute en php c'est sure, mais je connais quand même les bases des sélections dans les bd et les affichage des résultats!

    Merci quand meme pour vos réponses

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

Discussions similaires

  1. [XL-2003] Envoi mail en vba avec corps message
    Par danbenzi dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 31/03/2011, 18h58
  2. Réponses: 3
    Dernier message: 19/03/2009, 19h21
  3. [Mail] Fonction mail avec message d'entête
    Par lodan dans le forum Langage
    Réponses: 4
    Dernier message: 07/11/2006, 17h28
  4. Réponses: 6
    Dernier message: 09/03/2006, 13h35
  5. [Mail] envoi mail en masse avec fonction bcc
    Par jarod71 dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 11h44

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