17. november 2009 - 12:32
Der er
7 kommentarer og 1 løsning
PHP mail, udskriver html tags
Hej jeg har et problem, jeg har lavet et mail system som skal udsende nyhedsbreve, men problemet er at den udskriver html tags i emailen istedet for at gøre teksten fed osv. her er min kode: 1. $msg = $_POST['msg']; 2. $overskrift = $_POST['overskrift']; 3. $kategori = $_POST['kategori']; 4. htmlspecialchars($msg); 5. htmlspecialchars($overskrift); 6. htmlspecialchars($kategori); 7. 8. 9. $query = mysql_query("SELECT * FROM nyhedsbrev WHERE kategori = '$kategori'") or die(mysql_error()); 10. 11. $i = 0; 12. 13. while($data = mysql_fetch_array($query)) 14. 15. { 16. 17. if($i != 0) 18. $to .= ','; 19. $to .= $data["email"]; 20. $i++; 21. 22. } 23. 24. 25. #$headers = "MIME-Version: 1.0\r\n"; 26. //$headers 27. //Standard for mails - optional 28. //Nødvendigt for, at angive afsenderen. 29. 30. #$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; //Angiver at mailens indhold er i HTML-format 31. 32. #$headers .= $from ."\r\n"; //Sætter afsender i mailens header 33. 34. 35. $from = "firma navn"; 36. $subject = $overskrift; 37. $message = $msg; 38. 39. 40. 41. mail($to, $subject, $message, $headers);
Annonceindlæg tema
17. november 2009 - 12:35
#1
uden tal, og så rettet en smule i den, men virker stadig ikke i mail klienter men gmail virker fint og hotmail.com mail altså når det er via browseren viser den fed skrift osv. som den skal men ikke i mail programmer som outlook og windows live mail $msg = $_POST['msg']; $overskrift = $_POST['overskrift']; $kategori = $_POST['kategori']; $query = mysql_query("SELECT * FROM nyhedsbrev WHERE kategori = '$kategori'") or die(mysql_error()); $i = 0; while($data = mysql_fetch_array($query)) { if($i != 0) $to .= ','; $to .= $data["email"]; $i++; } $headers = "MIME-Version: 1.0\r\n"; //$headers //Standard for mails - optional //Nødvendigt for, at angive afsenderen. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; //Angiver at mailens indhold er i HTML-format $headers .= $from ."\r\n"; //Sætter afsender i mailens header $from = "firma navn"; $subject = $overskrift; $message = $msg; mail($to, $subject, $message, $headers);
17. november 2009 - 13:11
#2
Mon ikke du skal dekode teksten i databasen - altså noget med: $message = html_entity_decode($msg, ENT_QUOTES); Det kommer selvfølgelig an på hvad du har gjort, da du gemte det i databsen - det kan jeg ikke se.
17. november 2009 - 13:31
#3
det bliver ikke gemt i min database, men har lige prøvet at gemme det og den gemmer det sådan her <p>bla bla bla heheheh<br /><br /><br /><strong>fgfgdfgdf</strong></p> <p> </p> <p> </p> <p><span style="font-size: large;">fgfdgdgdfgdf</span></p> <h1>fgfgfg</h1> bruger tinyMCE som editor, kan lige prøve din kode
17. november 2009 - 13:52
#4
Nej, det forstår jeg. Kan du ikke checke om fx "<" er blevet til "<". I så fald vil mit forslag måske hjælpe alligevel.
17. november 2009 - 14:51
#5
det ser bare sådan her ud <p>twtwte</p> <p><br /><strong>asdasdasd</strong><br /><br /></p> <h1>asdsadasdas</h1> <p> </p> og min kode nu: $msg = $_POST['msg']; $overskrift = $_POST['overskrift']; $kategori = $_POST['kategori']; $message = html_entity_decode($msg, ENT_QUOTES); print_r($message); mysql_query("insert into mail_test (msg) VALUES ('$message')"); $query = mysql_query("SELECT * FROM nyhedsbrev WHERE kategori = '$kategori'") or die(mysql_error()); $i = 0; while($data = mysql_fetch_array($query)) { if($i != 0) $to .= ','; $to .= $data["email"]; $i++; } $headers = "MIME-Version: 1.0\r\n"; //$headers //Standard for mails - optional //Nødvendigt for, at angive afsenderen. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; //Angiver at mailens indhold er i HTML-format $from = "firma"; $headers .= $from ."\r\n"; //Sætter afsender i mailens header $subject = $overskrift; $message = $msg; mail($to, $subject, $message, $headers);
25. december 2009 - 22:30
#6
smid svar en af jer
Vi tilbyder markedets bedste kurser inden for webudvikling