Avatar billede stengaard Praktikant
22. februar 2005 - 23:08 Der er 34 kommentarer og
1 løsning

hvad er der galdt med min mail sender til et nyhedsbrev

mit script

<?php

$sql_host = "localhost";
$sql_user = "****";
$sql_passwd = "*****";
$db = "****";

$afsendernavn = "webmaster";
$afsendermail = "webmaster@****.dk";
$mailemne = "Nyhedsbrev fra Webmaster";

mysql_connect($sql_host,$sql_user,$sql_passwd);
mysql_select_db($db);

$resgalpics = mysql_query("SELECT count(*) FROM mailliste");
$rowgalpics = mysql_result($resgalpics,0,0);


     
if($sendt == "")
{
    echo "<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align=\"center\">
<a href=\"sendmail.php?sendt=on\" onclick=\"return confirm('Du du sikker på du vil sende NU?');\">
<font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\">Send
  News</font></strong></font></a><br><br><br>Der er $rowgalpics som får mailen</p>";
}
else
{


        error_reporting(63);
        include('class_html_mime_mail.inc');


        define('CRLF', "\r\n", TRUE);


        $mail = new html_mime_mail('X-Mailer: Html Mime Mail Class');


        $text = $mail->get_file('nyhedsbrev.txt');
        $html = $mail->get_file('nyhedsbrev.html');
       
        $mail->add_html($html, $text, './');


        $mail->set_charset('iso-8859-1');



        $mail->build_message();




$res = mysql_query("SELECT * FROM mailliste");

    while ($row = mysql_fetch_array($res))
    {
    set_time_limit(0);    // Timelimit 2 seconds for sending each mail
    $mail->send($row['mail'], $row['mail'], '$domainnavn', '$afsendermail', '$mailemne ');
sleep(1);
flush();
    }
set_time_limit(0);    // Timelimit to finish script


    echo "<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align=\"center\">
<font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\">
  News er nu sendt!</font></strong></font></a></p>";
}
?>
Avatar billede detox Nybegynder
22. februar 2005 - 23:15 #1
Det er register_globals = Off (igen).
Avatar billede stengaard Praktikant
22. februar 2005 - 23:20 #2
sikkert det er fra samme eksempel i en bog om php

er bare ikke den store haj i det endnu

men dette script er det der skal hente email fra mysqlog sende det men den skriver ikke
News er nu sendt!

som står sidst i scriptet men den kan læse 1 bruger af nyhedsbrevet den jeg fik oprettet

i index.php i spørgsmål http://www.eksperten.dk/spm/593700
Avatar billede detox Nybegynder
22. februar 2005 - 23:20 #3
Læs evt. denne side for at lære om register_globals i php:
http://dk2.php.net/manual/en/language.variables.predefined.php
Avatar billede detox Nybegynder
22. februar 2005 - 23:24 #4
Ret:

if($sendt == "")

til:

if(!isset($_GET['sendt']) || $_GET['sendt'] == "")
Avatar billede detox Nybegynder
22. februar 2005 - 23:26 #5
Hvorvidt der er fejl i resten af koden er svært at afgøre, da du bruger denne class: include('class_html_mime_mail.inc'); (som vi ikke kan se).
Avatar billede stengaard Praktikant
22. februar 2005 - 23:26 #6
to fejl

Warning: set_time_limit(): Cannot set time limit in safe mode in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/sendmail.php on line 149

Warning: set_time_limit(): Cannot set time limit in safe mode in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/sendmail.php on line 154

linie 149 - set_time_limit(0);    // Timelimit 2 seconds for sending each mail
linie 154 - set_time_limit(0);    // Timelimit to finish script
Avatar billede stengaard Praktikant
22. februar 2005 - 23:27 #7
men mailen kommer dog og den skriver  News er nu sendt!
Avatar billede detox Nybegynder
22. februar 2005 - 23:30 #8
Du kan ikke sætte set_time_limit i safe_mode, så du må fjerne de 2: set_time_limit(0);
Avatar billede stengaard Praktikant
22. februar 2005 - 23:30 #9
ok men hvad skal man så bruge dem til
Avatar billede detox Nybegynder
22. februar 2005 - 23:31 #10
Ligger de 2 nyhedsbreve, 'nyhedsbrev.txt' og 'nyhedsbrev.html', i den samme mappe som scriptet?
Avatar billede stengaard Praktikant
22. februar 2005 - 23:32 #11
hvordan i dette script for man eventuelt vist dem der er tilmeldt inden man sender det udover man kun kanse hvor mange der er kan man lave en funktion hvor man kan klikke dem af man vil sende til

bare en ide
Avatar billede stengaard Praktikant
22. februar 2005 - 23:33 #12
jep
Avatar billede detox Nybegynder
22. februar 2005 - 23:46 #13
$mail->send($row['mail'], $row['mail'], '$domainnavn', '$afsendermail', '$mailemne ');

skal nok rettes til:

$mail->send($row['mail'], $row['mail'], '$afsendernavn', '$afsendermail', '$mailemne');
Avatar billede detox Nybegynder
22. februar 2005 - 23:47 #14
Ellers kan jeg ikke rigtigt se nogen fejl, men prøv at rette:

        error_reporting(63);
        include('class_html_mime_mail.inc');

til:

        error_reporting(E_ALL);
        require('class_html_mime_mail.inc');
Avatar billede detox Nybegynder
22. februar 2005 - 23:50 #15
hmm:

error_reporting(63); = error_reporting(E_ALL);

så det er ok ;O)
Avatar billede stengaard Praktikant
22. februar 2005 - 23:53 #16
den sidste linie du skrev gav følgende fejl

Parse error: parse error, unexpected '=' in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/sendmail.php on line 121
Avatar billede stengaard Praktikant
22. februar 2005 - 23:55 #17
istedet for antal tilmeldte kan man så ikke få den til at skrive hvem der er tilmeldt

for den siger 2 forskellige men jeg får kun en mail ikke to

kan man ikke lave en funktionen hvor man skal hakke dem af man ønsker at sende nyhedsbrevet til bare en ide
Avatar billede detox Nybegynder
22. februar 2005 - 23:55 #18
Har du nogle billeder i 'nyhedsbrev.html' og ligger billederne i samme mappe som scriptet?

Øh, ja den skulle du heller ikke bruge. Kun:

        error_reporting(E_ALL);
        require('class_html_mime_mail.inc');
Avatar billede stengaard Praktikant
23. februar 2005 - 00:00 #19
ok ja billederne ligger i samme mappe

de kommer også med på den ene mail jeg for manjeg har tilmeldt to forskellige adresser for at test om den tog dem alle men det gør den ikke

ligeledes stor der ikke afsender denne linie

$mail->send($row['mail'], $row['mail'], '$afsendernavn', '$afsendermail', '$mailemne');

på mailen

fra: $afsendernavn [$afsendermail@mo1.b-one.net]
emne: $mailemne
modtager: min adresse
Avatar billede detox Nybegynder
23. februar 2005 - 00:02 #20
Skal selvf. være:

$mail->send($row['mail'], $row['mail'], $afsendernavn, $afsendermail, $mailemne);
Avatar billede stengaard Praktikant
23. februar 2005 - 00:03 #21
men ændre man linien fra

$mail->send($row['mail'], $row['mail'], '$afsendernavn', '$afsendermail', '$mailemne');

til

$mail->send($row['mail'], $row['mail'], 'webmaster', 'webmaster@*****.dk', 'nyhedsbrev fra webmaster');

kommer denne mail

fra: webmaster@*****.dk [$afsendermail@mo1.b-one.net]
emne: nyhedsbrev fra webmaster
modtager: min adresse


men det skulle jo være rigtigt i følge denne linie længere oppe i scriptet

$afsendernavn = "webmaster";
$afsendermail = "webmaster@****.dk";
$mailemne = "Nyhedsbrev fra Webmaster";
Avatar billede detox Nybegynder
23. februar 2005 - 00:04 #22
Prøv at rette løkken til:

    while ($row = mysql_fetch_array($res))
    {
    echo "Modtager: $row[mail]<br />";
    $mail->send($row['mail'], $row['mail'], '$domainnavn', '$afsendermail', '$mailemne ');
sleep(1);
flush();
    }
Avatar billede detox Nybegynder
23. februar 2005 - 00:05 #23
Hov:

    while ($row = mysql_fetch_array($res))
    {
    echo "Modtager: $row[mail]<br />";
    $mail->send($row['mail'], $row['mail'], $afsendernavn, $afsendermail, $mailemne);
sleep(1);
flush();
    }
Avatar billede detox Nybegynder
23. februar 2005 - 00:07 #24
Eller måske simpelthen:

    while ($row = mysql_fetch_array($res))
    {
    echo "Modtager: $row[mail]<br />";
    $mail->send($row['mail'], $row['mail'], $afsendernavn, $afsendermail, $mailemne);
    }
Avatar billede stengaard Praktikant
23. februar 2005 - 00:09 #25
ny sender den alle to og skriver hvem den har sendt til efter den skriver news sendt
Avatar billede detox Nybegynder
23. februar 2005 - 00:13 #26
Så lykkedes det altså ;o)
Avatar billede stengaard Praktikant
23. februar 2005 - 00:16 #27
jep

den linie her echo "Modtager: $row[mail]<br />";

kan man bygge den inde i dette her så man kan se antal samt modtager inden man sender den

if($sendt == "")
{
    echo "<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align=\"center\">
<a href=\"sendmail.php?sendt=on\" onclick=\"return confirm('Du du sikker på du vil sende NU?');\">
<font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\">Send
  News</font></strong></font></a><br><br><br>Der er $rowgalpics som får mailen</p>";
}
Avatar billede stengaard Praktikant
23. februar 2005 - 00:18 #28
eventuelt

if($sendt == "")
{
echo "<p>&nbsp;</p>
echo "Modtager: $row[mail]<br />";
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align=\"center\">
<a href=\"sendmail.php?sendt=on\" onclick=\"return confirm('Du du sikker på du vil sende NU?');\">
<font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\">Send
  News</font></strong></font></a><br><br><br>Der er $rowgalpics som får mailen</p>";
}

eller kommer det ikke til at virke
Avatar billede detox Nybegynder
23. februar 2005 - 00:26 #29
Jo, det du vil opnå er, som jeg forstår det, at få en liste med de tilmeldte mailadresser som du kan krydse af. I så fald skal du lave en lille form til formålet.
Avatar billede stengaard Praktikant
23. februar 2005 - 00:31 #30
ok

men hvordan for man dem til at stå der sammen med antal inden man trykker send

har prøvet denne her

if($sendt == "")
{

echo "<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align=\"center\">
<a href=\"sendmail.php?sendt=on\" onclick=\"return confirm('Du du sikker på du vil sende NU?');\">
<font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\">Send
  News</font></strong></font></a><br><br><br>Der er $rowgalpics som får mailen<br><br>Modtager: $row[mail]</p>";
}

men virker ikke for den trækker det sikkert ikke til det har jeg prøvet :

$query = mysql_query("SELECT mail FROM mailliste")
while ($row = mysql_fetch_assoc($query)) {

men det virker ikke rigtigt
Avatar billede stengaard Praktikant
23. februar 2005 - 00:33 #31
så kommer følgende fejl

Parse error: parse error, unexpected T_WHILE in /customers/lkongen.dk/lkongen.dk/httpd.www/newsletter/sendmail.php on line 107

while ($row = mysql_fetch_assoc($query)) {
Avatar billede stengaard Praktikant
23. februar 2005 - 00:33 #32
hvordan skal den form se ud er lidt på bar bund her !!!
Avatar billede detox Nybegynder
23. februar 2005 - 00:43 #33
Det skal laves i den her stil:

<?php
$sql_host = "localhost";
$sql_user = "****";
$sql_passwd = "*****";
$db = "****";

$afsendernavn = "webmaster";
$afsendermail = "webmaster@****.dk";
$mailemne = "Nyhedsbrev fra Webmaster";

mysql_connect($sql_host,$sql_user,$sql_passwd);
mysql_select_db($db);

$res = mysql_query("SELECT * FROM mailliste");
$check = '';
while ($row = mysql_fetch_assoc($res)) {
    $check .= "<input type='checkbox' name='modtagere[]' value='$row[mail]' /> $row[mail]<br />\n";
}
     
if(!isset($_POST['submit'])) {
    echo "<p>&nbsp;</p>
    <p align=\"center\">
    <form action='sendmail.php' method='post' onsubmit=\"return confirm('Du du sikker på du vil sende NU?');\">
    $check
    <input type='submit' name='submit' value='Send News' />
    </form>";
} else {
        error_reporting(63);
        include('class_html_mime_mail.inc');
        define('CRLF', "\r\n", TRUE);
        $mail = new html_mime_mail('X-Mailer: Html Mime Mail Class');
        $text = $mail->get_file('nyhedsbrev.txt');
        $html = $mail->get_file('nyhedsbrev.html');
        $mail->add_html($html, $text, './');
        $mail->set_charset('iso-8859-1');
        $mail->build_message();

    foreach ($_POST['modtagere'] as $to)
    {
    $mail->send($to, $to, $afsendernavn, $afsendermail, $mailemne);
    }

    echo "<p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p align=\"center\">
    <font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\">
      News er nu sendt!</font></strong></font></a></p>";
}
?>
Avatar billede stengaard Praktikant
23. februar 2005 - 01:21 #34
kanont det ser godt ud samler du point så send et svar eller mange gange tak for hjælpen her til aften
Avatar billede detox Nybegynder
23. februar 2005 - 01:24 #35
Velbekommen
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