MySQL interesse |
|
een hele tijd geleden ben ik deze topic gestart. Maar aangezien ik nog geen oplossing heb gevonden en de topic intussen gesloten is, wil ik hier verdergaan met wat ik nu heb.
Ik heb dus een uitgebreid agendasysteem waarbij bezoekers een activiteit kunnen plaatsen. Zodra de datum is voorbijgestreeft verdwijnt hij uit de agenda en wordt in een archief geplaatst.
Nu zou ik dus willen dat de bezoeker die een activiteit plaatst, een paar dagen voor de activiteit plaatsvindt een email krijgt, waarin staat dat de activiteit plaats gaat vinden. Dit zou gebeuren vanuit een cronjob.
Deze cronjob is een apart bestand en ziet er tot nu toe als volgt uit:
<?php
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
$db = mysql_connect($host, $username, $password) or die (mysql_error());
mysql_select_db($dbnaam, $db) or die (mysql_error());
// alle activititeiten ophalen die ouder zijn dan 3 dagen vanaf toevoegen.
$query = "SELECT id, naam, email FROM activiteiten WHERE DATE_SUB(NOW(),INTERVAL 3 DAY) <= aangemaakt AND reminder = 0";
$result = mysql_query($query) or die (mysql_error());
//alle activiteiten die van toepassing zijn verwerken.
while ($row = mysql_fetch_assoc($result))
{
// elke activiteit updaten zodat het systeem weet van welke activiteit reeds een mail gestuurd is.
$query2 = "UPDATE activiteiten SET reminder = 1 WHERE id = ".$row['id'];
$result2 = mysql_query($query2) or die (mysql_error());
// mail aanmaken en versturen (jouw code dus)
}
//Datum van vandaag
$datum_nu = date("Y-m-d");
//Datum van 2 dagen voor het evenement
$datum_plus = date("Y-m-d", strtotime(date("Y-m-d", strtotime($query['datum'])) . " -2 days"));
//Datums vergelijken
if($datum_nu == $datum_plus)
{
$headers = 'Van: Folk in Limburg <noreply@folkinlimburg.be>' . "\r\n";
$to = $query['emailadres'];
$subject = 'uw ingestuurde activiteit';
$mail_body = "
<html>
<head>
<title>" . $titel . "</title>
</head>
<body>
<img src=\"http://www.folkinlimburg.be/images/folkinlimburg.png\" /><br>
Beste " . $voornaam . ",
<br><br>
<p>Een tijdje geleden hebt u op de website van Folk in Limburg <a href=\"http://www.folkinlimburg.be/agenda/beschrijving.php?id=".$id."\">deze activiteit</a> toegevoegd:<br>
<table width=\"355\" border=\"0\">
<tr>
<td height=\"25\" bgcolor=\"#FFFFCC\">activiteit:</td>
<td height=\"25\" bgcolor=\"#FFFFCC\"><b>" . $titel . "</b></td>
</tr>
<tr>
<td height=\"25\" bgcolor=\"#FFFFCC\">datum:</td>
<td height=\"25\" bgcolor=\"#FFFFCC\"><b>" . $datum . "</b></td>
</tr>
<tr>
<td height=\"25\" bgcolor=\"#FFFFCC\">om:</td>
<td height=\"25\" bgcolor=\"#FFFFCC\"><b>" . $uur . "</b></td>
</tr>
</table>
<br><br>
Wij willen u hartelijk bedanken voor het plaatsen van deze activiteit, die over 2 dagen plaatsvindt. Moest u intussen nieuwe activiteiten willen toevoegen, dan kan dat rechtstreeks via <a href=\"http://www.folkinlimburg.be/agenda/toevoegen.php\">deze link</a><br><br>
Met vriendelijke groeten,<br>
<a href=\"http://www.folkinlimburg.be\">Folk in Limburg</a><br><br><br>
(dit is een automatisch gestuurd bericht, gelieve hierop niet te antwoorden.)
</body>
</html>
";
$actie = mail($to, $subject, $mail_body, $headers);
if(!$actie)
{
echo 'FOUT BIJ VERZENDEN';
}
}
?>
<?php $username = "geheim"; $password = "geheim"; $host="localhost"; $dbnaam="geheim"; $fout = "FOUT: openen database mislukt"; // alle activititeiten ophalen die ouder zijn dan 3 dagen vanaf toevoegen. $query = "SELECT id, naam, email FROM activiteiten WHERE DATE_SUB(NOW(),INTERVAL 3 DAY) <= aangemaakt AND reminder = 0"; //alle activiteiten die van toepassing zijn verwerken. { // elke activiteit updaten zodat het systeem weet van welke activiteit reeds een mail gestuurd is. $query2 = "UPDATE activiteiten SET reminder = 1 WHERE id = ".$row['id']; // mail aanmaken en versturen (jouw code dus) } //Datum van vandaag $datum_nu = date("Y-m-d"); //Datum van 2 dagen voor het evenement //Datums vergelijken if($datum_nu == $datum_plus) { $headers = 'Van: Folk in Limburg <noreply@folkinlimburg.be>' . "\r\n"; $to = $query['emailadres']; $subject = 'uw ingestuurde activiteit'; $mail_body = " <html> <head> <title>" . $titel . "</title> </head> <body> <img src=\"http://www.folkinlimburg.be/images/folkinlimburg.png\" /><br> Beste " . $voornaam . ", <br><br> <p>Een tijdje geleden hebt u op de website van Folk in Limburg <a href=\"http://www.folkinlimburg.be/agenda/beschrijving.php?id=".$id."\">deze activiteit</a> toegevoegd:<br> <table width=\"355\" border=\"0\"> <tr> <td height=\"25\" bgcolor=\"#FFFFCC\">activiteit:</td> <td height=\"25\" bgcolor=\"#FFFFCC\"><b>" . $titel . "</b></td> </tr> <tr> <td height=\"25\" bgcolor=\"#FFFFCC\">datum:</td> <td height=\"25\" bgcolor=\"#FFFFCC\"><b>" . $datum . "</b></td> </tr> <tr> <td height=\"25\" bgcolor=\"#FFFFCC\">om:</td> <td height=\"25\" bgcolor=\"#FFFFCC\"><b>" . $uur . "</b></td> </tr> </table> <br><br> Wij willen u hartelijk bedanken voor het plaatsen van deze activiteit, die over 2 dagen plaatsvindt. Moest u intussen nieuwe activiteiten willen toevoegen, dan kan dat rechtstreeks via <a href=\"http://www.folkinlimburg.be/agenda/toevoegen.php\">deze link</a><br><br> Met vriendelijke groeten,<br> <a href=\"http://www.folkinlimburg.be\">Folk in Limburg</a><br><br><br> (dit is een automatisch gestuurd bericht, gelieve hierop niet te antwoorden.) </body> </html> "; $actie = mail($to, $subject, $mail_body, $headers); if(!$actie) { echo 'FOUT BIJ VERZENDEN'; } } ?>
Tot nu toe krijg ik alleen een overzicht van de status van de cronjob, die ik in het controlepaneel heb ingesteld. Maar geen email
|