Probleme avec la fonction mail

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 16:09

Et si tu remontes le </table> ?
$texte. ='</table>

Eléphant du PHP | 258 Messages

13 juil. 2006, 16:23

pareil, idem

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 16:53

Si tu supprimes ce morceau :
<?php 
$str=""; 
do { 
    $str.='<tr>'; 
    $str.='<td><div align="center">'.$nomArti.'</div></td>'; 
    $str.='<td><div align="center">'.$prixUni.'</div></td>'; 
    $str.='<td><div align="center">'.$Qu.'</div></td>'; 
    $str.='<td><div align="center">'.$prixArti.'</div></td>'; 
    $str.='</tr>'; 
   } while ($row_Recordset4 = mysql_fetch_assoc($Recordset4)); ?> 
Tout marche correctement ? (laisse la concaténation de $texte)

Eléphant du PHP | 258 Messages

13 juil. 2006, 16:58

nom avec la concaténation il me met toujours cette erreur et meme si je l'enlève.

Je n'y comprend plus rien

Eléphant du PHP | 258 Messages

13 juil. 2006, 17:08

j'ai remis mon code comme ca :

$nomf=$row_Recordset2['nomfac']; 
$prenomf=$row_Recordset2['prenomfac']; 
$adressef=$row_Recordset2['adressefac']; 
$villef=$row_Recordset2['villefac']; 
$cpf=$row_Recordset2['cpfac']; 
$telf=$row_Recordset2['telfac']; 
$mailf=$row_Recordset2['mailfac']; 

$nom=$row_Recordset1['nom']; 
$prenom=$row_Recordset1['prenom']; 
$adress=$row_Recordset1['adresse']; 
$ville=$row_Recordset1['ville']; 
$cp=$row_Recordset1['cp']; 
$tel=$row_Recordset1['tel']; 
$mail=$row_Recordset1['mail']; 

$clientID=$row_Recordset3['ID']; 
$date=$row_Recordset3['date']; 
$total=$row_Recordset3['totalcom']; 

$nomArti=$row_Recordset4['nomArti']; 
$prixUni= $row_Recordset4['prixUni']; 
$Qu=$row_Recordset4['Qu']; 
$prixArti=$row_Recordset4['prixArti']; 

$adresse = "monmail"; 
$sujet = "Confirmation de votre commande\n\n"; 


$texte='<html> 
<head> 
<title>Untitled Document</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 

<body> 
<p>&nbsp; '.$etatC.'  '.$nom.' '.$prenom.',</p> 
<p>Merci d\'avoir pass&eacute; commande chez <strong>ATLANTIC BARS<strong> 
<strong><br>Conservez ce mail car il tient lieu de facture. </strong></p> 
<table width="429" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
    <td width="225">Commande n&deg; '.$clientID.'</td> 
    <td width="204">du '.$date.' </td> 
</tr> 
</table> 
<br> 
<table width="559" border="0" cellspacing="0"> 
<tr> 
    <td width="166"><div align="center">D&eacute;signation</div></td> 
    <td width="138"><div align="center">Prix Unitaire </div></td> 
    <td width="112"><div align="center">Quantit&eacute;</div></td> 
    <td width="135"><div align="center">Prix Article </div></td> 
</tr> 
<tr> 
    <td>---------------------------</td> 
    <td>-----------------------</td> 
    <td>------------------</td> 
    <td>----------------------</td> 
</tr> 

 </table> 
---------------------------------------------------------------------------------------------------------------<br> 
<table width="581" border="0" cellspacing="0"> 
<tr> 
    <td width="202">&nbsp;</td> 
    <td width="375"> 
     
    <table width="284" border="0" align="right" cellpadding="0" cellspacing="0"> 
    <tr> 
        <td width="118" align="center">Total T.T.C :</td> 
        <td width="166" align="center">'.$totalc.'</td> 
    </tr> 
    </table> 
     
    </td> 
</tr> 
</table> 
<p><strong>Adresse de livraison :</strong></p> 
<p><strong>Nom :</strong> '.$nom.'<br> 
<strong>Prenom :  </strong>'.$prenom.'<br> 
<strong> Adresse : </strong>'.$adress.'<br> 
<strong>Code postal : </strong>'.$cp.'<br> 
<strong>Ville : </strong>'.$ville.'<br> 
<strong>T&eacute;l&eacute;phone : </strong>'.$tel.'<br> 
<strong>Mail :</strong> '.$mail.'</p> 
<p><strong>Adresse de facturation :</strong><br> 
<br> 
<strong>Nom :</strong> '.$nomf.'<br> 
<strong>Prenom : </strong>'.$prenomf.'<br> 
<strong>Adresse : </strong>'.$adressef.'<br> 
<strong>Code postal :</strong> '.$cpf.'<br> 
<strong>Ville : </strong>'.$villef.'<br> 
<strong>T&eacute;l&eacute;phone : </strong>'.$telf.'<br> 
<strong>Mail :</strong> '.$mailf.'<br> 
<p>Merci de votre visite, en esp&eacute;rant vous revoir bient&ocirc;t.</p> 
</body> 
</html>'; 
$headers = "MIME-Version: 1.0\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\n"; 
$headers .= "From: '.mailf.'\n"; 

mail ($adresse, $sujet, $texte,$headers); 


Donc au plus simple et je ne recois meme plus le nom, prenom etc...

Ca me'envoi ca :

0 ,

Merci d'avoir passé commande chez
Conservez ce mail car il tient lieu de facture.

Commande n° 1 du 2006-07-07

Désignation Prix Unitaire Quantité Prix Article
--------------------------- ----------------------- ------------------ ----------------------
---------------------------------------------------------------------------------------------------------------
Total T.T.C : 0


Adresse de livraison :

Nom :
Prenom :
Adresse :
Code postal :
Ville :
Téléphone :
Mail :

Adresse de facturation :

Nom :
Prenom :
Adresse :
Code postal :
Ville : /strong>
Téléphone :
Mail :


Merci de votre visite, en espérant vous revoir bientôt.

</html



J'ai l'impression que plus je cherche plus je fais des bourdes enormes.


J'ai rectifier ca me donne ca

Madame ppppp ppppppppppp,

Merci d'avoir passé commande chez
Conservez ce mail car il tient lieu de facture.

Commande n° 62 du 2006-07-08

Désignation Prix Unitaire Quantité Prix Article
--------------------------- ----------------------- ------------------ ----------------------/td>
---------------------------------------------------------------------------------------------------------------
Total T.T.C : 64.7


Adresse de livraison :

Nom : ppppp
Prenom : ppppppppppp
Adresse : ppppppppp
Code postal : ppppp
Ville : ppppppppp
Téléphone : ppppppppp
Mail : pppppppppp

Adresse de facturation :

Nom : ppppp
Prenom : pppppppppp
Adresse : ppppppppp
Code postal : ppppp
Ville : ppppppppp
Téléphone : ppppppppp
Mail : pppppppppp


Merci de votre visite, en espérant vous revoir bientôt.

</html

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 18:21

Dans ce cas testes avant tout la récupération de tes variables. Si tu ne les récupères pas comme il faut c'est certain que tu n'auras rien dans le mail.

Fais juste un echo de toutes tes variables du haut.

Eléphant du PHP | 258 Messages

13 juil. 2006, 18:41

Non mes les variables comme tu vois dans mon message précédent j'arrive a les récupérer meme celles du panier sauf que je n'arrive qu' a afficher une seul ligne de mon pagnier, si il comportent plusieurs article je n'arrive pas a les afficher dans mon mail

voila le mail que je recois

Mademoiselle ooooooooo oooooooooo,

Merci d'avoir passé commande chez
Conservez ce mail car il tient lieu de facture.

Commande n° 92 du 2006-07-13

Désignation Prix Unitaire Quantité Prix Article
--------------------------- ----------------------- ------------------ ---------------------
Doseur manette 4 CL 20.35 1 20.35
---------------------------------------------------------------------------------------------------------------
Total T.T.C : 38.99


Adresse de livraison :

Nom : ooooooooo
Prenom : oooooooooo
Adresse : oooooooooo
Code postal : ooooo
Ville : oooooooooo
Téléphone : ooooooooo
Mail : ooooooooooooo

Adresse de facturation :

Nom : ooooooooo
Prenom : oooooooooo
Adresse : oooooooooo
Code postal : ooooo
Ville : oooooooooo
Téléphone : ooooooooo
Mail : ooooooooooooo


Merci de votre visite, en espérant vous revoir bientôt.


Un peut mieux présenter, mais en tout cas il y a tous se que j'ai mis (les o c'est moi) mais les articles il y en a 2 normalement.

Eléphant du PHP | 258 Messages

14 juil. 2006, 09:17

Personne a de solution a me proposer, pourtant c'est fesable les grand sites marchand le font alors pourquoi pas nous.

Eléphant du PHP | 258 Messages

15 juil. 2006, 19:07

Serait il possible d'afficher sous forme de tableau une session de type :

if (!isset($_SESSION['liste'])) $liste[]=array(0,"VIDE",0,1,0); else $liste=$_SESSION['liste'];

Eléphant du PHP | 258 Messages

19 juil. 2006, 14:30

bonjour vu que personne peut m'aider je lance d'autres questions, qui sais peut etre amènneront elles à des solutions.

Serait il possible de mettre une boucle for dans une variable?

Exemple : $var = for ...;

Ou alors vu que j'ai peut etre mal posé ma question et qu'apres on c'est tous enméler, je vais essayer de la poser autrement .

Serait il possible de mettre une pboucle for das le corp d'un mail envoyer en php?

Ou alors plus simple comment les sites marchand comme "topachat","fnac" et autres (désolé pour la pub) font il pour envoyer leur mail avec recapitulatif de la commande car moi c'est sa que je veut faire.

Merci à tous d'avoir pris le temps de lire se message.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 juil. 2006, 14:38

Dans ton mail, tu n'envoi pas de php, mais du html (voire du texte brut). Il te faut donc générer ce code en php en le stockant dans une variable que tu passeras à la fonction mail :)

Ainsi, tu ne peux pas stocker un for dans une variable, mais tu peux utiliser ta variable dans ton for
monMailEnHtml = '<table>';
for($i = 0; $i < $tantQuYEnA; $i++) {
  monMailEnHtml .= '<tr>';
  monMailEnHtml .= '<td>'.$i.'</td>';
  monMailEnHtml .= '</tr>';
}
monMailEnHtml .= '</table>';

echo monMailEnHtml; // pour vérifier le html généré. 
// Affiche :
//<table><tr><td>0</td></tr><tr><td>1</td></tr><tr><td>2</td></tr>...</table>

mail($to, $monMailEnHtml, $headersQuiVontBien, ...); // envoi le mail en html

Eléphant du PHP | 258 Messages

19 juil. 2006, 14:43

Merci je test et je te dis si sa marche



Bon je suis une vrai buse se n'est pas la boucle "for" mais "do while" que j'aimerais mettre das une variable et/ou dans mon mail encore désolé, mais je suis un vrai naze.

Eléphant du PHP | 258 Messages

19 juil. 2006, 15:06

Je demande un grand désolé à Ryle qui m'avais donné la solution au tout début, je suis vraiment confus car j'ai essayer ca :

Code : Tout sélectionner

$html.=</tr>'; do { ; $html.=" <tr> "; $html.=' <td><div align="center">'.$nomArti.'</div></td> '; $html.='<td><div align="center">'.$prixUni.'</div></td>'; $html.='<td><div align="center">'.$Qu.'</div></td>'; $html.='<td><div align="center">'.$prixArti.'</div></td> '; $html.="</tr>"; } while ($row_Recordset4 = mysql_fetch_assoc($Recordset4)); $html.='</table>

Et sa marche, enfin à moitier c'est déja pas mal .

En effet il m'affiche bien 2 articles l'un sous l'autre mais c'est les deux meme.

Quelqu'un a une idée.

Et encore mille excuse pour Ryle et les autres .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 juil. 2006, 15:06

bah ca marche tout pareil.. suffit de mettre dans une variable ce que tu fais à l'intérieur de ton do/while :)
$i = 0;
do {
  monMailEnHtml .= '<tr>'; 
  monMailEnHtml .= '<td>'.$i.'</td>'; 
  monMailEnHtml .= '</tr>';
  $i++ 
} while ($i < $tantQuYEnA) 

Eléphant du PHP | 258 Messages

19 juil. 2006, 17:06

Bon j'ai réussi merci à tous et un peut à moi.

Je met le code qu'il fallait mettre c'est peut etre pas esthétic mais ca marche.
<?php

 $html.='</tr>'; 
 
do { 
  $html.= '<tr>';
   $html.=' <td><div align="center">';
   $html.="{$row_Recordset4['nomArti']}";
   $html.='</div></td> ';
   $html.='<td><div align="center">';
   $html.= "{$row_Recordset4['prixUni']}";
   $html.='</div></td>'; 
   $html.='<td><div align="center">';
   $html.="{$row_Recordset4['Qu']}";
   $html.='</div></td>'; 
   $html.='<td><div align="center">';
   $html.="{$row_Recordset4['prixArti']}";
   $html.='</div></td>';
  $html.='</tr>';
   } while ($row_Recordset4 = mysql_fetch_assoc($Recordset4)); 

$html.='</table>';

?>