login  Naam:   Wachtwoord: 
Registreer je!
 Forum

html e-mail

Offline Stefan14 - 18/09/2006 07:00
Avatar van Stefan14PHP gevorderde Ik heb vandaag ook maar eens de poging gewaagd een html mail te sturen, maar helaas is me dit tot nu toe nog niet gelukt.

Het script wordt prima uitgevoerd, maar de html wordt niet uitgevoerd, de html codes worden letterlijk weergegeven in de mail.

code is als volgt:

  1. <?php
  2. else
  3. {
  4. $type = filter($_POST['type']);
  5. $inhoud = filter($_POST['inhoud']);
  6.  
  7. if($type == 'nieuwtje')
  8. $query = "SELECT emailadres,naam FROM klanten WHERE nieuwtjesNieuwsbrief='ja'";
  9. elseif($type == 'nieuweAanbieding')
  10. $query = "SELECT emailadres,naam FROM klanten WHERE nieuweAanbiedingenNieuwsbrief='ja'";
  11. elseif($type == 'nieuwProduct')
  12. $query = "SELECT emailadres,naam FROM klanten WHERE nieuweProductenNieuwsbrief='ja'";
  13.  
  14. if($type == 'nieuweAanbieding')
  15. $type = 'Nieuwe aanbiedingen';
  16.  
  17. if($type == 'nieuwProduct')
  18. $type = 'Nieuwe producten';
  19.  
  20. if($type == 'nieuwtje')
  21. $type = 'Nieuwtje';
  22.  
  23. $result = mysql_query($query);
  24. $aantalOntvangers = mysql_num_rows($result);
  25. echo('Deze nieuwsbrief is gemaild naar '.$aantalOntvangers.' klanten.');
  26. if(mysql_num_rows($result))
  27. {
  28.  
  29. $headers .= "From: Elektronica Onderdelen.nl\r\n";
  30. $headers .= "MIME-Version: 1.0\r\n";
  31. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  32.  
  33. echo('<table width="400"><tr><th>Naam</th></tr>');
  34. while($row = mysql_fetch_array($result))
  35. {
  36. $emailadres = $row['emailadres'];
  37. echo('<tr bgcolor='.$bgcolor.'><td>'.$row['naam'].'</td></tr>');
  38. mail($emailadres,'Nieuwsbrief Elektronica Onderdelen.nl - '.$type,stripslashes(nl2br($inhoud)),$headers);
  39. if($changeColor==false)
  40. {
  41. $bgcolor = '#EEEEEE';
  42. $changeColor = true;
  43. }
  44. else
  45. {
  46. $bgcolor = '#DDDDDD';
  47. $changeColor = false;
  48. }
  49. }
  50. echo('</table>');
  51. }
  52. }
  53. ?>



Dit is alleen het gedeelte wat uitgevoerd wordt zodra er op submit is gedrukt.
het formulier heb ik nu achterwege gelaten, temeer ook omdat daar niets in is gewijzigd aangezien het een al reeds bestaand script is wat ik nu wil aanpassen naar html.

2 antwoorden

Gesponsorde links
Offline Dark_Paul - 18/09/2006 08:17
Avatar van Dark_Paul PHP ver gevorderde Ik zie een kleine fout in je headers.
Je roept $header meteen aan met .= terwijl die nog niet gezet is.
Dus dat moet je even veranderen. Ik weet niet of het uitmaakt, maar zet de 'from' header eens na de content-headers.
Offline Thomas - 18/09/2006 10:50
Avatar van Thomas Moderator Hoe ziet $inhoud er uit, m.a.w. wat doet de functie filter()?

Zet deze < om naar &lt; en > naar &gt;?

Dan is het namelijk niet zo verbazingwekkend dat je de HTML letterlijk te zien krijgt - deze is dan door de functie filter "onschadelijk gemaakt".
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.182s