login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Nieuwsbrief verzenden, weergave fout

Offline Voldemort - 24/12/2005 16:56 (laatste wijziging 13/07/2008 18:46)
Avatar van VoldemortPHP ver gevorderde Als ik de nieuwsbrief verzend komt er:

Beste ...,

Beste ...,

Wel 7 keer (op ... komt de naam van verschillende leden). Normaal moet daar maar 1 keer staan met jouw gebruikersnaam.

  1. <?php
  2. //De if is gewoon verzenden. Deze elseif met submit2 in is om het voorbeeld te bekijken, de andere elseif met submit3 erin is om te verzenden vanaf het voorbeeld. Dan heb je nog een else met het formulier.
  3. elseif(isset($_POST['submit2']))
  4. {
  5. //Maak de gegevens op
  6. //Onderwerp
  7. $onderwerp = $_POST['onderwerp'];
  8. $tr_onderwerp = trim($onderwerp);
  9. $htmle_onderwerp = htmlentities($tr_onderwerp, ENT_QUOTES);
  10. $str_onderwerp = strip_tags($htmle_onderwerp);
  11.  
  12. //Nieuwsbrief
  13. $nieuwsbrief = $_POST['nieuwsbrief'];
  14. $tr_nieuwsbrief = trim($nieuwsbrief);
  15. $htmle_nieuwsbrief = htmlentities($tr_nieuwsbrief, ENT_QUOTES);
  16. $str_nieuwsbrief = strip_tags($htmle_nieuwsbrief);
  17.  
  18. //Als de nieuwsbrief leeg is
  19. if(empty($str_onderwerp) || empty($str_nieuwsbrief))
  20. {
  21. echo "Je hebt niet alles ingevuld";
  22. }
  23. //Anders verzenden
  24. else
  25. {
  26. $onderwerp = stripslashes($str_onderwerp);
  27.  
  28. $nieuwsbrief = $str_nieuwsbrief."
  29.  
  30. Vriendelijke groeten,
  31. Quinten
  32. http://www.harrypotter-dreuzels.com
  33.  
  34. Je ontvangt de nieuwsbrief omdat je als lid van het Harry Potter - Dreuzels site-account de optie 'Nieuwsbrief ontvangen' aan hebt staan.";
  35.  
  36. $nieuwsbrief_ok = ubb_codes(stripslashes($nieuwsbrief));
  37.  
  38. $_SESSION['onderwerp'] = $onderwerp;
  39. $_SESSION['nieuwsbrief'] = $nieuwsbrief;
  40.  
  41. echo 'Onderwerp: '.$onderwerp.'<br /><br />
  42.  
  43. E-mail: Beste [gebruikersnaam],<br /><br />
  44.  
  45. '.$nieuwsbrief_ok.'<br /><br />
  46.  
  47. <form method="post" action="">
  48. <input type="submit" name="submit3" value="Verzend de nieuwsbrief">
  49. </form>';
  50. }
  51. }
  52. elseif(isset($_POST['submit3']))
  53. {
  54. //Haal alle gebruikersnamen en mailadressen uit de DB die de nieuwsbrief willen ontvangen
  55. $query2 = "SELECT `gebruikersnaam`, `mailadres` FROM `leden` WHERE `nieuwsbrief_ontvangen`='1'";
  56. $result2 = mysql_query($query2) or die(mysql_error());
  57.  
  58. while($fetch2 = mysql_fetch_array($result2))
  59. {
  60. $aan = $fetch2['mailadres'];
  61.  
  62. $nieuwsbrief = "Beste ".$fetch2['gebruikersnaam'].",<br /><br />
  63.  
  64. ".$_SESSION['nieuwsbrief'];
  65.  
  66. $nieuwsbrief_ok = ubb_codes(stripslashes($nieuwsbrief));
  67.  
  68. //HTML mag in de mail
  69. $headers = "MIME-Version: 1.0\r\n";
  70. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  71.  
  72. //Extra
  73. $headers .= "From: Quinten <webmaster@harrypotter-dreuzels.com>\r\n";
  74. $headers .= "To: ".$fetch2['gebruikersnaam']." <".$fetch2['mailadres'].">\r\n";
  75.  
  76. //En nu de mail nog verzenden
  77. mail($aan,$_SESSION['onderwerp'],$nieuwsbrief_ok,$headers);
  78. }
  79.  
  80. echo "De nieuwsbrief is succesvol verzonden.";
  81. }
  82. ?>


Wat doe ik fout?

3 antwoorden

Gesponsorde links
Offline Ibrahim - 19/08/2006 20:36
Avatar van Ibrahim PHP expert ik had een oplossing, maar was vergeten die hier te posten. Alstublieft, voor de mensen die dit probleem ook hebben.

  1. <?php
  2.  
  3. //database connectie
  4.  
  5. $select = mysql_query("SELECT name, email FROM newsletter WHERE want_newsletter = 1") or die(mysql_error());
  6.  
  7. $names = '';
  8. $emails = '';
  9.  
  10. while($fetch = mysql_fetch_assoc($select))
  11. {
  12. $names .= $fetch['name'].'|';
  13. $emails .= $fetch['email'].'|';
  14. }
  15.  
  16. $email = explode('|', $emails);
  17. $name = explode('|', $names);
  18.  
  19. for($i = 0, $size = count($email) - 1; $i < $size; $i++)
  20. {
  21. mail($email[$i], 'Test', 'Hi'. $name[$i]."\n Your email is: ". $email[$i]);
  22. }


Moet je wel waarschuwen dat het wat lang gaat duren als je veel mensen hebt in je database
Offline Gerard - 20/08/2006 04:53
Avatar van Gerard Ouwe rakker Mijn god, what the hell ben je aan het doen. Dit is een regelrechte WTF. Zet dat mail statement gewoon in de while lus.
Offline Ibrahim - 20/08/2006 22:01
Avatar van Ibrahim PHP expert Huh ik heb het deze keer opnieuw gedaan (wat jij zei) en nu werkt ie wel. Raar waarschijnlijk lag het aan me host want bij me andere werkte het niet zoals nu op me local 

weird
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.202s