Vraag & Antwoord

Webprogrammeren & scripting

Nieuwsbriefsysteem ontwerp

9 antwoorden
  • Ik heb al enkele pogingen ondernomen om een nieuwsbriefsysteem te ontwerpen. Wanneer er daarna alleen "plain" teksten worden verzondern gaat dat goed, zodra ik html eraan toevoeg gaat het fout: Hoe langer de mailinglijst, hoe vaker een persoon een email geheel in html ontvangt-> staat het emailadres in de datbaase bijvoorbeeld op de 10 plek, dan krijgt de persoon het 1 emailtje en daarin 10 keer de boodschap in html. Wat doe je dan fout in het systeem? Dit is m'n mailregel -> <? $Adressen = mysql_query("SELECT Adres FROM Nieuwsbrief WHERE Activeren = '0' ORDER BY Adres"); while($Adres = mysql_fetch_object($Adressen)) { //ontwerp bericht $HetBericht = "$Bericht"; include("ontwerp.php"); mail("$Adres->Adres",$Onderwerp,$HetBericht,$headers"); } ?> Dit is het ontwerp in het klein -> <? $headers .= "From: $this->from\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n". "\r\n". "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n". "<HTML>\r\n". "<HEAD>\r\n". "<link REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://xxx.nl/layout.css\">\r\n". "</HEAD>\r\n". "<BODY bgcolor=\"#eeeeee\" leftmargin=\"0\" topmargin=\"20\" marginwidth=\"0\" marginheight=\"0\">\r\n". "<TABLE width=\"800\" valign=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"middle\">\r\n". "<TR>\r\n". "<TD><IMG src=\"http://xxx.nl/plaatje01.jpg\" width=\"199\" height=\"183\" >$HetBericht</TD>\r\n". "</TR>\r\n". "</TABLE>\r\n". "</BODY>\r\n". "</HTML>\r\n". "\r\n";?>
  • Wat doet die " achter $headers bij de functie mail daar? Daarnaast heeft het *totaal* geen zin en zal het zelfs vertragend werken als je dingen als "$Adres->Adres" doet, die aanhalingstekens mogen gewoon weg, het is een variabele en geen string... Daarnaast zal het wel ook wel een probleem zijn dat je iedere keer wat included, waarom doe je dat niet één keer en stop je dat in een variabele die je vervolgens iedere keer gebruikt?
  • ik heb nog nieuwsbriefsysteem met pziez hetzelfde probleem, het is een onderdeel van het gehele script, zonder dat ik wat include etc -> je commentaar. Ik wil het heeeel graag oplossen maar alleen lukt het me gewoon niet. <? function SendMail($subject, $nl2brmsg) { $sql = "SELECT email FROM $this->table"; $res = mysql_query($sql); while ($row = mysql_fetch_array($res)) { $to = "$row[email]"; $aanhef = "Beste lezer,<br><br>"; $bericht = "$aanhef\n\n"; $bericht .= "$nl2brmsg\n\n"; $headers .= "From: $this->from\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n". "\r\n". "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n". "<HTML>\r\n". "<HEAD>\r\n". "<link REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://xxx.nl/layout.css\">\r\n". "</HEAD>\r\n". "<BODY bgcolor=\"#eeeeee\" leftmargin=\"0\" topmargin=\"20\" marginwidth=\"0\" marginheight=\"0\">\r\n". "<TABLE width=\"800\" valign=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"middle\">\r\n". "<TR>\r\n". "<TD><IMG src=\"http://xxx.nl/plaatje01.jpg\" width=\"199\" height=\"183\" >$bericht</TD>\r\n". "</TR>\r\n". "</TABLE>\r\n". "</BODY>\r\n". "</HTML>\r\n". "\r\n"; mail($to, $subject, $msg, $headers); } return $res; }?>
  • Je plakt al je content in je headers, lijkt me niet helemaal de bedoeling. Daarnaast is het slim om die mail methode er even uit te halen en gewoon die vier variabelen ($to, $subject, $msg en $headers) op het scherm te printen om te kijken wat daar percies in staat. Nog iets: $to = "$row[email]"; moet echt $to = $row["email"]; worden, maar dat zei ik in mijn vorige post ook al min of meer... Nog wat: voor code zijn de [code]...[/code] blokken uitgevonden.
  • [quote:b442b6e775="Bill Gates"]Je plakt al je content in je headers, lijkt me niet helemaal de bedoeling.[/quote:b442b6e775] dat was het! hardstikke bedankt nog
  • Bill Gates, zou je me ook nog kunnen vertellen hoe je met kwootjes ("bla") in je bericht omgaat als je het bericht wil verzenden ? Ik voer de tekst eerst in een database in ->[code:1:a10fd34fa3] $bericht = addslashes($bericht); $bericht = nl2br($bericht); [/code:1:a10fd34fa3] Vervolgens toon ik het bericht ->[code:1:a10fd34fa3] $bericht = stripslashes($bericht); $bericht = nl2br($bericht); [/code:1:a10fd34fa3] En als het nieuwsbericht verzonden word naar de verschillende emailadressen haal ik de stripslashes weer weg ->[code:1:a10fd34fa3] $bericht=stripslashes($bericht);[/code:1:a10fd34fa3] maar dan verstuurt het niet meer het bericht wat tussen de kwootjes in staat. Met addslashes krijg ik alleen maar backslashes en ook geen bericht dat in de kwootjes heeft gestaan. Hoe los je dat op met mail()?
  • een keer addslashes voor het sturen is het enige dat nodig is lijkt me.
  • maar dan krijg je toch lelijke backslashes in je bericht ?
  • Niet als je stripslashes() gebruikt voordat je 'm in echo() gooit. ;) - Bas

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.