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!








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 ?Envoyé par loreleï85
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








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'];
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à.$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'];
';
utilise plustot
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $body = 'html' . $maVar . 'html' ;
nb : Un éditeur avec coloration syntaxique t'aurai fait piquée l'erruer dans les nyeux
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $boby = "html $maVar html";








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 :
Si quelqun voit doù cela peut venir...
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.'));?>

Il semblerait qu'il y ait de des erreurs de conceptions (grossières)... :Envoyé par loreleï85
Dans ta condition while('.$row_produit.' = mysql_fetch_array('.$produit.')); l'utilisation des guillmets simples ('.) n'a pas de sens.
Syntaxe correcte :
Et d'ailleurs, un while me raparait plus adéquat.
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));?>
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.} ?>








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 !).Envoyé par loreleï85
Donne le code complet si tu veux une réponse complète.
![]()








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 :
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 $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);
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'].' € </td> <td width="182"> '.$row_produit['quantite'].'</td> </tr> <?php } ?>








Personne ne voit d'où cela peut venir?
C'est assez urgent!
MErci d'avance pour vos réponses!








mais tu fais 2 mysql_fetch_array ?
je vois que tu as deux $row_produit[]








Non je n'en fais qu'un.

Ouais c'est ce que j'ai remarqué aussi...Mais c'est peut-être deux parties de script disctinctes...Envoyé par drommk
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 !








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
Partager