Fejl i mit nyhedsbrev-script
Hej Exp!Jeg har et script som sender nyhedsbrev ud til mine brugere. Scriptet har hidtil virket, men nu er det begyndt at fejle. Når jeg sender ud bliver der byttet rundt på id's og emails. Dvs. at man modtager mails med en anden brugers oplysninger og det er jo ikke godt.
Nogen der kan se hvor det kikser?
<?php
ob_start();
include("../includes/db.php");
$id = $_GET[id];
// Henter nyhedsbrev
$nyhedsbrev = mysql_fetch_array(mysql_query("SELECT * FROM nyhedsbrev_breve WHERE id = '$id'"));
$nyhedsbrev_html = $nyhedsbrev["html"];
$sendt_til_id = $nyhedsbrev[sendt_til];
$voksen = $nyhedsbrev[voksen];
// Antal sendt
$antal = $nyhedsbrev[antal_sendt];
if($voksen==1)
{
// Finder 10 adresser, der skal sendes til (voksne)
$ress = mysql_query("SELECT * FROM brugere WHERE (YEAR(CURDATE())-YEAR(foedselsdag))-(RIGHT(CURDATE(), 5)<RIGHT(foedselsdag, 5)) > 17 and id > $sendt_til_id and nyhedsbrev='1' ORDER BY id LIMIT 0, 10");
$antal_ialt = mysql_num_rows(mysql_query("SELECT * FROM brugere WHERE (YEAR(CURDATE())-YEAR(foedselsdag))-(RIGHT(CURDATE(), 5)<RIGHT(foedselsdag, 5)) > 17 and nyhedsbrev='1'"));
}
else
{
// Finder 10 adresser, der skal sendes til (små møgunger)
$ress = mysql_query("SELECT * FROM brugere WHERE (YEAR(CURDATE())-YEAR(foedselsdag))-(RIGHT(CURDATE(), 5)<RIGHT(foedselsdag, 5)) < 18 and foedselsdag !='0000-00-00 00:00:00' and id > $sendt_til_id and nyhedsbrev='1' ORDER BY id LIMIT 0, 10");
$antal_ialt = mysql_num_rows(mysql_query("SELECT * FROM brugere WHERE (YEAR(CURDATE())-YEAR(foedselsdag))-(RIGHT(CURDATE(), 5)<RIGHT(foedselsdag, 5)) < 18 and foedselsdag !='0000-00-00 00:00:00' and nyhedsbrev='1'"));
}
// Tjekker om vi er færdige
if (mysql_num_rows($ress) == 0 or $nyhedsbrev["done"] == 1)
{
// Så er vi færdige
mysql_query("UPDATE nyhedsbrev_breve SET done = '1' WHERE id = '$id'");
$html = "
<div style=\"position: absolute; border: 1px solid #a0a0a0; background: #c0c0c0; height: 20px; width: 100%; font-size: 10pt; text-align: center;\">Afsendelse er færdig (" . $nyhedsbrev["antal_sendt"] . " stk.)</div>
";
}
else
{
// Så er vi ikke færdige
while ($res = mysql_fetch_array($ress))
{
$email = $res["email"];
$sendt_til_id = $res["id"];
$auth = $res["auth"];
mysql_query("UPDATE nyhedsbrev_breve SET sendt_til = '$sendt_til_id', antal_sendt = antal_sendt + 1 WHERE id = '$id'");
// Tilføjer bruger_id og brev_id til billedet der registrerer om brugeren har læst brevet.
$nyhedsbrev_html = str_replace("##BRUGER_ID##",$sendt_til_id,$nyhedsbrev_html);
$nyhedsbrev_html = str_replace("##NAVN##","$res[fornavn] $res[efternavn]",$nyhedsbrev_html);
$nyhedsbrev_html = str_replace("##BREV_ID##",$id,$nyhedsbrev_html);
$nyhedsbrev_html = str_replace("##AUTH##",$auth,$nyhedsbrev_html);
$til = $email;
$fra = "From: xxx <info@xxx.dk>";
$titel = $nyhedsbrev["emne"];
$besked = $nyhedsbrev_html;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "$fra\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1;\r\n";
mail($til, $titel, $besked, $headers); //Sender mailen
}
// Laver HTML-tæller
if ($antal_ialt <= 0)
{
$antal_ialt = 0.00001;
}
$procent = round($antal / $antal_ialt * 100);
$html = "
<div style=\"position: absolute; border: 1px solid #a0a0a0; background: #c0c0c0; height: 20px; width: $procent%; font-size: 1pt;\"> </div>
<div style=\"position: absolute; border: 1px solid #a0a0a0; height: 20px; width: 400px; font-size: 10pt; text-align: center;\">$procent %</div>
hej
<script>
document.location.href = 'nyhedsbrev_send_auto.php?id=$id';
</script>
";
}
?>
<html>
<head>
<style>
body {
font-family: Verdana;
font-size: 10pt;
margin: 0px;
}
</style>
</head>
<body>
<?php echo $html?>
</body>
</html>
