Avatar billede Slettet bruger
29. april 2007 - 23:05 Der er 9 kommentarer og
1 løsning

Problemer med mit "afsendelse af nyhedsbrev" script

Hej Eksperter
Jeg har som overskriften siger nogle problemer med mit script.
Jeg har fået en del hjælp til dette script af McCookie, her på siden.
Problemet er at når der blir afsendt nyhedsbrev vha. dette script, så istedet for at sende 1 nyhedsbrev til alle i databasen, så sender den kun til lidt over halvdelen af de tilmeldte, men alle dem der ikke blir sendt til, deres navne blir alligevel hentet i databasen og, men blir sæt ind i ét eller flere nyhedsbrev(e), men kun sendt til 1, så det kommer til at se nogenlunde sådan her ud:
Hello Person 1
Hello Person 2
Hello Person 3
Hello Person 4
osv. osv.

'Her kommer selv nyhedsbrevs teksten'

Mit script ser således ud:
<?php
$content = $_POST['content'];
$subject = $_POST['subject'];
include('../scripts/info.php');

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($sqldb);

$resultat1 = mysql_query("SELECT * FROM ".$sqlemailtabel." ORDER BY `id` ASC LIMIT 0, 100");

while ($raekke = mysql_fetch_array($resultat1)) {
        $navn = $raekke['navn'];   
        $idnummer = $raekke['id'];           
        $email = $raekke['email'];   
       

        extract($raekke);
        $to = $email;
        $content = "Hello $navn\n\n\n".
                  $content.
                  "\n\n\n".
                  $from."\n\n".
                  $delete_user_besked."\n".
                  "http://".$dinwebsite.$stitilfiler."/delete_user.php?id=".$idnummer;
        if(mail($to, $subject, $content,
              "From: $from\r\n"
              ."Reply-To: $from\r\n"
              ."X-Mailer: PHP/" . phpversion()))
                  {
                    echo "Mail afsendt med <u><b>succes</b></u> til: $navn med følgende emailadresse: $email<br>";
                }    else
                {
                    echo "Kunne ikke sende en mail til: $navn med følgende emailadresse: $email<br>";
                }
              flush();
}

echo '<form name="laaner_formular" method="post" action="send2.php">'.
        '<input type="hidden" value="'.$content.'" name="content">'.
        '<input type="hidden" value="'.$subject.'" name="subject">'.
        '<input type="submit" name="send" value="Send Til De Næste 100">'.
        '</form>';
?>

Håber at i kan forstå hvad det er jeg mener, og at i kan hjælpe mig

På forhånd tak
Per
Avatar billede lolman Nybegynder
30. april 2007 - 00:18 #1
definer:
$oldContent = $content;
udenfor while-sætningen og erstat:
        $content = "Hello $navn\n\n\n".
                  $content.
med:

        $content = "Hello $navn\n\n\n".
                  $oldContent.

så bliver dit problem med:Hej person1
Hej person2 osv. løst
Avatar billede lolman Nybegynder
30. april 2007 - 00:19 #2
Dit andet problem kan måske være at du har over 100 tilmeldte og den derfor kun sender til de 100 første..
Prøv istedet at slette:
LIMET 0,100
fra:

$resultat1 = mysql_query("SELECT * FROM ".$sqlemailtabel." ORDER BY `id` ASC LIMIT 0, 100");
Avatar billede lolman Nybegynder
30. april 2007 - 00:20 #3
Så det samlede bliver:
<?php
$content = $_POST['content'];
$subject = $_POST['subject'];
include('../scripts/info.php');

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($sqldb);
$oldContent = $content;
$resultat1 = mysql_query("SELECT * FROM ".$sqlemailtabel." ORDER BY `id` ASC");

while ($raekke = mysql_fetch_array($resultat1)) {
        $navn = $raekke['navn']; 
        $idnummer = $raekke['id'];         
        $email = $raekke['email']; 
     

        extract($raekke);
        $to = $email;
        $content = "Hello $navn\n\n\n".
                  $oldContent.
                  "\n\n\n".
                  $from."\n\n".
                  $delete_user_besked."\n".
                  "http://".$dinwebsite.$stitilfiler."/delete_user.php?id=".$idnummer;
        if(mail($to, $subject, $content,
              "From: $from\r\n"
              ."Reply-To: $from\r\n"
              ."X-Mailer: PHP/" . phpversion()))
                  {
                    echo "Mail afsendt med <u><b>succes</b></u> til: $navn med følgende emailadresse: $email<br>";
                }    else
                {
                    echo "Kunne ikke sende en mail til: $navn med følgende emailadresse: $email<br>";
                }
              flush();
}

echo '<form name="laaner_formular" method="post" action="send2.php">'.
        '<input type="hidden" value="'.$content.'" name="content">'.
        '<input type="hidden" value="'.$subject.'" name="subject">'.
        '<input type="submit" name="send" value="Send Til De Næste 100">'.
        '</form>';
?>
Avatar billede Slettet bruger
30. april 2007 - 09:25 #4
Hej Lolman

Tak for dine svar, jeg prøver dem lige når jeg kommer hjem fra arnejde i aften.
En af grundende til at jeg kun sender til de første 100 er at jeg har haft nogle problemer med at den lavet en time out fordi den af en eller anden årsag ikke kunne klare at sende til alle i databasen på en gang. Jeg sender jo også til de næste 100 til slut i scriptet.
Men jeg prøver lige at se hvad den siger til at sende til alle på en gang når jeg kommer hjem.

Per
Avatar billede Slettet bruger
02. maj 2007 - 20:10 #5
Hej igen.
Så fik jeg endelig testet ovenstående script, men det virker stadig ikke, helt efter planen :(
Der er ca. 100 ud af 350 som ikke modtager nyhedsbrevet.
Så hvis du (eller en anden) har endnu en idé til hvordan det skal gøres vil jeg meget gerne hører.

Per
Avatar billede lolman Nybegynder
03. maj 2007 - 16:41 #6
er du sikker på at formen linker rigtigt og ikke til en anden side.php men en lig. form?
Avatar billede Slettet bruger
04. maj 2007 - 07:45 #7
Formen linker til den rigtige side.php

Formen ser således ud:

echo    'Send nyhedsbrev til alle tilmeldte.<br><br>'.
    '<form enctype="multipart/form-data" name="temp" method="post" action="send.php">'.
    'Overskrift:<br />'.
    '<input type="text" size="50" maxlenght="100" name="subject">'.
    '<br /><br />Skriv brevet: <br />'.
    '<textarea name="content" cols="60" rows="10"></textarea>'.
    '<br /><br />Vedhæft billed: <br />'.
    '<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />'.
    '<input name="userfile" type="file" /><br /><br />'.
    '<input type="submit" name ="send" value="Send Nyhedsbrev">'.
    '<input type="reset" name ="ryd" value="Ryd Indtastning">'.
    '</form>';
Avatar billede Slettet bruger
04. maj 2007 - 07:46 #8
og form siden hedder index.php, og den ligger i samme mappe som send.php
Avatar billede lolman Nybegynder
21. maj 2007 - 22:40 #9
hmm.. prøv evt at smide break(1); ind efter hver afsendelse.

altså så php holder 1 sek pause
Avatar billede Slettet bruger
02. juli 2007 - 19:11 #10
lukket
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