Autor | Zpráva | ||
---|---|---|---|
Frozen Profil |
#1 · Zasláno: 1. 2. 2011, 09:55:57
Zdravím, chtěl jsem se zeptat zda-li se někdo z Vás nesetkal s tím, že phpmailer občas odešle špatně html, tudíž nenaformátuje tabulku zcela dobře, ale v jednom řádku třeba vynechá sloupec a vypíše html značku textově nad tabulku.
Pro ilustraci: text . . . . text Předem děkuji za jakékoliv postřehy. |
||
Alphard Profil |
#2 · Zasláno: 1. 2. 2011, 10:26:09
Radši sem dejte zdroják.
|
||
Frozen Profil |
#3 · Zasláno: 1. 2. 2011, 10:51:08 · Upravil/a: Frozen
Přikládám tedy zdrojový kód
// je pocet produktu $x=0; $objednavka_mail_nahled = "<table style='width:600px;background-color:#FDECEE;border-spacing:0px;'><th style='background-color:#A8101F;color:white;'>zboží</th><th style='background-color:#A8101F;color:white;'>vlastnosti</th><th style='background-color:#A8101F;color:white;'>množství</th><th style='background-color:#A8101F;color:white;'>cena za kus</th><th style='background-color:#A8101F;color:white;'>celková cena</th>"; // nuluju zas celkovou cenu $celkova_cena = 0; while($x < $pocet_produktu){ // zde si naberu promene $produkt = $_POST["produkt_id_".$x]; $prvni_atribut = $_POST["atribut_1_".$x]; $druhy_atribut = $_POST["atribut_2_".$x]; $mnozstvi = $_POST["mnozstvi_".$x]; //rovnou nahazim produkty do DB MYSQL_QUERY("INSERT INTO objednavky_kosik(id_objednavky, produkt_id, atribut_1, atribut_2, mnozstvi)VALUES('{$cislo_objednavky[0]}', '$produkt', '$prvni_atribut', '$druhy_atribut', '$mnozstvi' )"); // informace o produktu $sql = mysql_query("SELECT * FROM produkty WHERE id = $produkt"); $produkt_info = mysql_fetch_array($sql); //pro kazdy produkt vytvorim radek do tablu v mailu $objednavka_mail_nahled .= "<tr><td style='padding-left:10px;'>".$produkt_info['nazev']."</td><td style='text-align:center;'>".($prvni_atribut != '' ? "$prvni_atribut $druhy_atribut" : "-")."</td><td style='text-align:center;'>".$mnozstvi."</td><td style='text-align:right;'>".number_format($produkt_info['cena'], 2, ',', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY."</td><td style='text-align:right;'>".number_format($produkt_info['cena']*$mnozstvi, 2, ',', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY."</td></tr>"; // zadám si cenu za produkt * mnozstvi celkem $cena_celkem = $produkt_info['cena']*$mnozstvi; $sql_dan = mysql_query("SELECT * FROM dan WHERE id in (SELECT id_dan FROM produkty WHERE id = '{$produkt_info['id']}')"); $vypis_dane = mysql_fetch_array($sql_dan); $dan[$vypis_dane['id']] = $cena_celkem/(100+$vypis_dane['procenta'])*$vypis_dane['procenta']+$dan[$vypis_dane['id']]; $celkova_cena = $celkova_cena + $produkt_info['cena']*$mnozstvi; $x++; } foreach($dan as $key => $value){ $sql_info_dan = mysql_query("SELECT * FROM dan WHERE id = '$key'"); $dan_info = mysql_fetch_array($sql_info_dan); $dan_k_nakupu[$key]['nazev'] = $dan_info['nazev']; $dan_k_nakupu[$key]['znak'] = $dan_info['znak']; $dan_k_nakupu[$key]['procenta'] = $dan_info['procenta']; $dane_celkem = $value + $dane_celkem; } $cena_bez_dph = $celkova_cena - $dane_celkem; // zjisteni dopravy podle ID $sql = mysql_query("SELECT * FROM doprava WHERE id = $doprava"); $doprava_info = mysql_fetch_array($sql); if($celkova_cena < DOPRAVA_ZDARMA)$doprava_cena = $doprava_info['cena']; else $doprava_cena = 0; // zjisteni platby podle ID $sql = mysql_query("SELECT * FROM platba WHERE id = $platba"); $platba_info = mysql_fetch_array($sql); //zapsani dopravy, platby a ceny do tablu v mailu $objednavka_mail_nahled .="<tr style='background-color:#FFFFD2;'><td style='padding-left:10px;'>Doprava (".$doprava_info['nazev']."): </td><td></td><td></td><td></td><td style='text-align:right;'>".($doprava_cena == '0' ? "<span style='color:#509904; font-weight:bold;'>zdarma</span>" : number_format($doprava_cena, 2, ',', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY )."</td></tr>"; $objednavka_mail_nahled .="<tr style='background-color:#FFFFD2;'><td style='padding-left:10px;'>Platba (".$platba_info['nazev']."): </td><td></td><td></td><td></td><td style='text-align:right;'>".number_format($platba_info['cena'], 2, ', ', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY."</td></tr>"; $objednavka_mail_nahled .="<tr style='background-color:#E9E9E9;'><td style='padding-left:10px;'>Cena celkem bez DPH: </td><td></td><td></td><td></td><td style='text-align:right;'>".number_format($cena_bez_dph, 2, ',', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY."</td></tr>"; foreach($dan_k_nakupu as $key => $value){ $objednavka_mail_nahled .="<tr style='background-color:#E9E9E9;'><td style='padding-left:10px;'>{$value['znak']}(".$value['procenta']."%):</td><td></td><td></td><td></td><td style='text-align:right;'>".number_format($dan[$key], 2, ',', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY."</td></tr>"; } // ukončení table v mailu $objednavka_mail_nahled .="<tr style='background-color:#A8101F;color:white;'><td style='padding-left:10px;'><strong>Cena celkem včetně DPH:</strong></td><td></td><td></td><td></td><td style='text-align:right;font-weight:bold;'>".number_format($celkova_cena+$doprava_cena+$platba_info['cena'], 2, ',', ' ').PREFIX_CENY.JEDNOTKA_CENY.SUFIX_CENY."</td></tr>"; $objednavka_mail_nahled .= "</table>"; . . . $body = " <html> |
||
Alphard Profil |
#4 · Zasláno: 1. 2. 2011, 12:00:03
Nemáte ještě html zdroják toho rozbitého mailu?
Já PHPMailer nepoužívám, ale nikde jsem na podobný problém nenarazil. Obecně byste měl všechna data (jako $jmeno, což předpokládám pochází od klienta) escapovat. |
||
Frozen Profil |
#5 · Zasláno: 1. 2. 2011, 12:37:19
S proměnými pracuji výše než je uveden kód, uvedl jsem jen část, která se stará o zpracování dat do mailu
jinak výstup je zde <div style="width: 600px;"> <p><span style="padding-left: 10px;">Dobrý den,</span> <br> zasíláme Vám informace o Vaší objednávce, kterou jste zadal/a dne 31.01.2011 na internetovém obchodě <a style="text-decoration: none;" href="/redir?hashId=389548396&to=http%3a%2f%2fwww%2espodni%2dpradlo%2dbella%2ecz%2f" target="_blank"> <span style="color: rgb(51, 51, 51); font-weight: bold;">www.spodni-pradlo-<span style="color: rgb(192, 17, 34); font-weight: bold;">Bella</span> <span style="color: rgb(51, 51, 51); font-weight: bold;">.cz</span> </span> </a>. <br><br> Stav: <strong> zpracovává se </strong> <br> </p> < td style='text-align:center;'>1 <table style="width: 600px; background-color: rgb(253, 236, 238); border-spacing: 0px;"><tbody> <tr><th style="background-color: rgb(168, 16, 31); color: white;">zboží</th><th style="background-color: rgb(168, 16, 31); color: white;">vlastnosti</th><th style="background-color: rgb(168, 16, 31); color: white;">množství</th><th style="background-color: rgb(168, 16, 31); color: white;">cena za kus</th><th style="background-color: rgb(168, 16, 31); color: white;">celková cena</th></tr> <tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Černá</td><td style="text-align: center;">2</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">260,00,-Kč</td></tr> <tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Fialová</td><td style="text-align: center;">1</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr> <tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Lill a</td><td style="text-align: center;">1</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr> <tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Modrá</td><td style="text-align: center;">1</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr> <tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Růžovofialová</td><td style="text-align: center;">1</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr><tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Smetanová</td><td style="text-align: center;">1</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr><tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Tmavěfialová</td><td style="text-align: right;">1 30,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr> <tr><td style="padding-left: 10px;">Tanga Bellissima 030</td><td style="text-align: center;">S-M Tyrkysová</td><td style="text-align: center;">1</td><td style="text-align: right;">130,00,-Kč</td><td style="text-align: right;">130,00,-Kč</td></tr> <tr style="background-color: rgb(255, 255, 210);"><td style="padding-left: 10px;">Doprava (Česká pošta): </td><td></td><td></td><td></td><td style="text-align: right;">70,00,-Kč</td></tr> <tr style="background-color: rgb(255, 255, 210);"><td style="padding-left: 10px;">Platba (dobírka): </td><td></td><td></td><td></td><td style="text-align: right;">50,00,-Kč</td></tr><tr style="background-color: rgb(233, 233, 233);"><td style="padding-left: 10px;">Cena celkem bez DPH: </td><td></td><td></td><td></td><td style="text-align: right;">975,00,-Kč</td></tr> <tr style="background-color: rgb(233, 233, 233);"><td style="padding-left: 10px;">DPH(20%):</td><td></td><td></td><td></td><td style="text-align: right;">195,00,-Kč</td></tr><tr style="background-color: rgb(168, 16, 31); color: white;"><td style="padding-left: 10px;"><strong>Cena celkem včetně DPH:</strong></td><td></td><td></td><td></td><td style="text-align: right; font-weight: bold;">1 290,00,-Kč</td></tr></tbody></table> ..... Koukám, že tam mam špatné ukončení <span>u (napřeskáčku), ale zřejmě to nebude ta chyba. Nevím občas se to stane a občas ne. Netuším čím to může být. |
||
Alphard Profil |
#6 · Zasláno: 1. 2. 2011, 12:46:39
Problém je evidentně v
< td style='text-align:center;'>1
To jsou entity pro < a > před tabulkou. Jak to vzniká nevím. Je ta chyba zcela náhodná, nebo se pro stejná data projeví vždy stejně? |
||
Frozen Profil |
#7 · Zasláno: 1. 2. 2011, 13:17:11
právě že je to nahodilá chyba :'-(
|
||
Frozen Profil |
#8 · Zasláno: 2. 2. 2011, 11:14:44
Tak další poznatek... vypadá to, že mi to dělá pouze atribut s vlasnostmi S-M Tmavěfialová - což absolutně nechápu...
|
||
Časová prodleva: 13 let
|
0