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 :

Include dans fonction mail [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Points : 20
    Points
    20
    Par défaut Include dans fonction mail
    Salut,

    J'ai un tableau en php sur une autre page 'tableau.php' je souhaiterais le mettre en include dans mon envoi de mail cependant, cela ne fonctionne pas, comment faire une include dans une fonction mail ?

    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
     
    <?php
    $destinataire = "*******";
    $expediteur   = "moi@monsite.com";
    $reponse      = $expediteur;
     
     
    echo "Ce script envoie un mail au format HTML à $destinataire";
    $codehtml=
    "<html><body>" .
    "<h1>BON DE COMMANDE</h1><br><br>".
    "" .
    "" .
    "<table><tr><td width='320'><fieldset><legend>ADRESSE DE LIVRAISON  </legend><br><table><tr><td>" .$_POST['societe']. "</td></tr><tr><td>" .$_POST['adresse']. "</td></tr><tr><td> " .$_POST['cp']. " " .$_POST['ville']. "</td></tr></table><br></fieldset></td><td width='80' valign='right'></td><td width='320' valign='right'><fieldset><legend>ADRESSE DE FACTURATION</legend><br><table><tr><td> " .$_POST['societefact']. "</td></tr><tr><td> " .$_POST['adressefact']. "</td></tr><tr><td> " .$_POST['cpfact']. " " .$_POST['villefact']. "</td></tr></table></fieldset></td> </tr></table><br><br>".
    "<table border='1' width='200'><tr><td><center><b><font color='blue'>COMMENTAIRES</font></b></td></tr><tr><td>" .$_POST['message']. "</td></tr></table><br><br>" .
    "" .include('tableau.php'). "" .
    "</body></html>";
    mail($destinataire,
         "Bon de commande",
         $codehtml,
         "From: $expediteur\r\n".
            "Reply-To: $reponse\r\n".
            "Content-Type: text/html; charset=\"iso-8859-1\"\r\n");
    ?>

  2. #2
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Comme dans tout autre fichier, avec un include (ou un include_once) !
    Tu as essayé de faire comment ?
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Comme l'indique le code. Direct dans le mail.

    Merci. ^^

  4. #4
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Ah^^ effectivement, au temps pour moi

    - Tu ne peux afficher que des chaînes de caractères, il te faut donc savoir ce que tu veux afficher de ton tableau : le tableau en entier, un élément du tableau ?
    Si tu veux afficher le tableau en entier, il te faut savoir ce que tu veux avoir entre chaque élément, puis utiliser la bonne fonction.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tableau = array('Bonjour', 'Au revoir');
    echo explode('_et_', $tableau);
    => Affichera : "Bonjour_et_Au revoir".

    - Il faut savoir que l'include, comme son nom l'indique, fait une inclusion.
    Autrement dit, la built-in include va aller chercher le code qui est contenu dans tableau.php et l'intégre à ton fichier au moment où tu appelleras ta page.
    Il faut donc mettre l'inclusion au dessus de ton affectation et ensuite concaténer ta chaîne (puisque c'est une chaîne de caractère qui est attendue ici, pas un tableau !) au reste.
    Par exemple, en admettant que ton tableau, défini dans tableau.php, se nomme $tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include 'tableau.php';
    $maChaine = explode(' ', $tableau);
    $codehtml = 'bonjour je t'envoie un mail '.$maChaine.' voilà la fin de mon mail !';
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Salut, je ne sais pas si c'est bien compris mais cela ne fonctionne pas, j'ai fait cela :

    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
    <?php
    $destinataire = "*****";
    $expediteur   = "moi@monsite.com";
    $reponse      = $expediteur;
    $tableau = include 'tableau.php';
    $maChaine = explode(' ', $tableau);
     
     
     
    echo "Ce script envoie un mail au format HTML à $destinataire";
    $codehtml=
    "<html><body>" .
    "<h1>BON DE COMMANDE</h1><br><br>".
    "" .
    "" .
    "<table><tr><td width='320'><fieldset><legend>ADRESSE DE LIVRAISON  </legend><br><table><tr><td>" .$_POST['societe']. "</td></tr><tr><td>" .$_POST['adresse']. "</td></tr><tr><td> " .$_POST['cp']. " " .$_POST['ville']. "</td></tr></table><br></fieldset></td><td width='80' valign='right'></td><td width='320' valign='right'><fieldset><legend>ADRESSE DE FACTURATION</legend><br><table><tr><td> " .$_POST['societefact']. "</td></tr><tr><td> " .$_POST['adressefact']. "</td></tr><tr><td> " .$_POST['cpfact']. " " .$_POST['villefact']. "</td></tr></table></fieldset></td> </tr></table><br><br>".
    "<table border='1' width='200'><tr><td><center><b><font color='blue'>COMMENTAIRES</font></b></td></tr><tr><td>" .$_POST['message']. "</td></tr></table><br><br>" .
    "" .$maChaine. "" .
    "</body></html>";
    mail($destinataire,
         "Bon de commande",
         $codehtml,
         "From: $expediteur\r\n".
            "Reply-To: $reponse\r\n".
            "Content-Type: text/html; charset=\"iso-8859-1\"\r\n");
    ?>
    Merci. ^^

  6. #6
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = include 'tableau.php';
    L'include est une built-in php et non une fonction, elle n'a donc pas de valeur de retour et il n'y a pas donc pas lieu de l'utiliser pour l'affecter à une variable !
    Des exemples ici : http://fr2.php.net/manual/fr/function.include.php

    De plus, tu ne peux afficher que des chaînes de caractères, il te faut donc savoir ce que tu veux afficher de ton tableau : le tableau en entier, un élément du tableau ?

    Tu as quoi dans le fichier tableau.php (s'il est long, mets juste le tableau que tu veux afficher) ?
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Voici la page tableau.php

    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
    <table width="600" border="1">
    <tr>
    <td>ARTICLE(S)</td><td>QUANTITE</td><td>PRIX HT</td>
    </tr>
     
     
          <?php
    include("mysql_connect.php");
     
    $reponse = mysql_query("SELECT * FROM panier");
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <tr>
    <td><?php echo $donnees['nom'];?></td><td><?php echo $donnees['quantite'];?></td><td><?php echo $donnees['prix'];?></td>
    </tr>
     
     
    <?php }
    mysql_close
    ();?>
    <?php
    include("mysql_connect.php");
    $sqlpanier = mysql_query("SELECT SUM(prix) AS Montant FROM panier");
    while ($echselect = mysql_fetch_array($sqlpanier) )
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $echselect['Montant']; ?> </td>
    </tr>
     
    </table><br><br>

    Il fonctionne bien, si le tableau n'est pas représenté dans le mail ce n'est pas grave, ça prend la forme d'un tableau tout de même. ^^ Je ne comprend pas comment faire l'include, ça me met Array.

  8. #8
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Ok, c'est une page HTML en fait et non un tableau (php) !

    Bon dans ce cas, le plus simple pour toi sera de rediriger la sortie standard le temps de l'inclusion du fichier, et de tout récupérer dans une variable.
    Ceci fonctionnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ob_start();
    include('tableau.php');
    $myContent = ob_get_contents();
    ob_end_clean();
     
    $codehtml=
    "<html><body>" .
    "<h1>BON DE COMMANDE</h1><br><br>".
    "<table><tr><td width='320'><fieldset><legend>ADRESSE DE LIVRAISON  </legend><br><table><tr><td>" .$_POST['societe']. "</td></tr><tr><td>" .$_POST['adresse']. "</td></tr><tr><td> " .$_POST['cp']. " " .$_POST['ville']. "</td></tr></table><br></fieldset></td><td width='80' valign='right'></td><td width='320' valign='right'><fieldset><legend>ADRESSE DE FACTURATION</legend><br><table><tr><td> " .$_POST['societefact']. "</td></tr><tr><td> " .$_POST['adressefact']. "</td></tr><tr><td> " .$_POST['cpfact']. " " .$_POST['villefact']. "</td></tr></table></fieldset></td> </tr></table><br><br>".
    "<table border='1' width='200'><tr><td><center><b><font color='blue'>COMMENTAIRES</font></b></td></tr><tr><td>" .$_POST['message']. "</td></tr></table><br><br>" .
    .$myContent.
    "</body></html>";
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  9. #9
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Salut,

    Merci beaucoup cela fonctionne. Encore merci à toi. :p

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/10/2012, 22h51
  2. include dans fonction->perd ses variables
    Par shawidoom dans le forum Langage
    Réponses: 13
    Dernier message: 07/07/2011, 21h51
  3. [Mail] Variable dans Fonction mail
    Par yanng dans le forum Langage
    Réponses: 13
    Dernier message: 27/03/2009, 18h39
  4. [Mail] Faire passer un include dans un mail
    Par metatron dans le forum Langage
    Réponses: 8
    Dernier message: 18/08/2006, 15h39
  5. [Mail] Mettre un include dans une variable
    Par Death83 dans le forum Langage
    Réponses: 16
    Dernier message: 04/03/2006, 20h01

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