Autor | Zpráva | ||
---|---|---|---|
chudst Profil |
Zdravím, poprosím o pomoc s řešením následujícího drobného problému: ze stránek posílám na email registrovanému uživateli email. Vše funguje v pohodě, až na jednu věc: pokud se zde vyskytuje odstavec, hodí mi to za ním " \r\n". (Text ukládám přes TinyMCE do databáze).
Vypadá to takto: http://chudst.cz/rnstranky.jpg A zdrojový kód je zde: <?php $site_name = "XYZ"; $site_email = "XYZ@XYZ.cz"; $subject = "=?utf-8?B?".base64_encode($nadpis)."?="; $message = "<body style='background-color: #21511d;'> <center> <table style='width: 700px; border: 1px solid; background-color: #e2f6db;'> <tr><th style='background-color: #b4c7ad; font: bold; height: 50px;'>" . mb_strtoupper($nadpis,'utf-8') . "</th></tr> <tr><td> <p><b>Zdravíčko $uzivatel_osloveni!</b></p> $zprava //zde se odesílá zpráva <p style='margin-bottom: 15px;'><b>Tolik z novinek, měj se famfárově :)</b></p> </td></tr> <tr><td style='background-color: #b4c7ad;'> <p style='margin: 5px 0px 5px 0px; text-align: center;'><small><b>Tento email byl odeslán ze stránek: <a href='http://XYZ.cz/' style='color: #008000; text-decoration: none;'>http://XYZ.cz</a>.</b></small></p> </td></tr> </table> </center> </body>"; $hlavicka_emailu = "MIME-Version: 1.0\n"; $hlavicka_emailu .= "Content-Type: text/html; charset=utf-8\n"; $hlavicka_emailu .= "From: =?UTF-8?B?".base64_encode($site_name)."?=<$site_email>\n"; mail($uzivatel_email, $subject, $message, $hlavicka_emailu); ?> Zdrojový kód odeslaného textu do databáze: <p><em>Dovolte, aby som Vas touto cestou oslovil s moznostou uplatnenia sa na trhu prace a to hned v segmente 5*, kde nas hotel je za svoje necele 3 roky fungovania na slovenskom trhu opatovne hodnoteny ci uz ako najlepsi hotel na Slovensku alebo najlepsia hotelova restauracia apod.</em></p> <p><em>Vdaka nasmu korporatnemu program pre pracu s talentami, vieme kazdorocne ponuknut niekolko volnych pracovnych miest aj mladym, ambicioznym studentom, dobre hovoriacim po anglicky a najma s vasnou pre tuto pracu. Pod vedenim svetovych expertov v hotelierstve a gastronomii, nasich zahranicnych kolegov managerov, tak maju moznost vstupit do sveta TOP hotelierstva v domovskej krajine. A postupnou pracou u nas rozvijat svoj talent aj v “sieti “nasich hotelov celosvetovo.</em></p> <p><em>Za 3 roky fungovania su to realne mena uspeschnych absolventov, ktori dnes rozvijaju svoj telant aj v destinaciach ako Seychelly, Malta, Cina, Belgicko ci susedne Rakusko. Viac info o tomto programe najdete na nasich strankach. </em></p> |
||
Tori Profil |
#2 · Zasláno: 10. 6. 2013, 19:59:25
chudst:
Někde se vám to dvakrát escapuje. Nevím v jakém pořadí co kam ukládáte, takže: pokud chybný vstup přijde z formuláře, tak se koukněte do FAQ: Nejčastější potíže s PHP (FAQ) » Lomítka ve vstupních hodnotách . Pokud chybná data přijdou z DB, koukněte se třeba v PhpMyAdmin, jestli jsou uložená v pořádku, a pak projděte ukládání/čtení z DB, jestli v kódu není nějaké volání addslashes. |
||
chudst Profil |
Chybný vstup jde z formuláře (je totožný s tím, jaký se ukládá do databáze - text výše je přímo zkopírován z databáze), ale pokud daný text dodám "natvrdo" do zdrojového kódu, email se odešle normálně a \r\n mi to za odstavcem nevypisuje.
S lomítky problém není, spíše se zalomením. Zkusil jsem použít stripslashes($zprava) - to v pořádku odstraní lomítka, ale zůstávají tam písmena místo \r\n, tak rn. |
||
Časová prodleva: 9 dní
|
|||
chudst Profil |
Já jsem opravdu kůň. Mě nenapadlo se podívat na výstup, jak se to zobrazuje přímo v mailu. Jako prostý text, takže to šlo nahradit pomocí:
$zprava_bez_rn = str_replace(array("\\n", "\\r"),"",$zprava); Každopádně - děkuji za snahu ;) |
||
Časová prodleva: 11 let
|
0