Avatar billede pitzen Nybegynder
21. juli 2008 - 11:04 Der er 1 løsning

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;\">&nbsp;</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>
Avatar billede pitzen Nybegynder
08. september 2010 - 10:33 #1
lik
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB