Probleme avec la fonction mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme avec la fonction mail

par 2501gigi » 19 juil. 2006, 17:16

Je crois que j'ai essayé sa déjà et c'est bizarre mais ca ne marche pas.

En tout cas merci bien.

Du moment que mon code marche tout va bien.

par Ryle » 19 juil. 2006, 17:14

Si c'est du nésthéthisme que tu veux, tu peux aussi l'écrire comme ça :)
do { 
   $html.='<tr>'; 
   $html.='<td><div align="center">' . $row_Recordset4['nomArti']  . '</div></td>'; 
   $html.='<td><div align="center">' . $row_Recordset4['prixUni']  . '</div></td>'; 
   $html.='<td><div align="center">' . $row_Recordset4['Qu']       . '</div></td>'; 
   $html.='<td><div align="center">' . $row_Recordset4['prixArti'] . '</div></td>'; 
   $html.='</tr>'; 
} while ($row_Recordset4 = mysql_fetch_assoc($Recordset4)); 

par 2501gigi » 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>';

?>

par Ryle » 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) 

par 2501gigi » 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 .

par 2501gigi » 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.

par Ryle » 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

par 2501gigi » 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.

par 2501gigi » 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'];

par 2501gigi » 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.

par 2501gigi » 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.

par charabia » 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.

par 2501gigi » 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

par 2501gigi » 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

par charabia » 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)