Avatar billede surfman Nybegynder
08. august 2006 - 23:12 Der er 41 kommentarer og
1 løsning

Mærkeligt? Nyhedsbrev script laver fejl.

gå ind på www.kki.dk/mailliste.php
Så hvis du prøver og tilmelde dig, bliver formularen bare stående, den skriver hverken Din email er tilmeldt eller noget. Her er koden.
------------------------------------------------

<form action="<? print $filename; ?>?mode=on" method="post">

<input type="text" name="mail" size="30">  <SELECT name="valg"><option value="Tilmeld" selected>Tilmeld!<option value="Afmeld">Afmeld</select>

<br><input type="submit" value="Submit">

</form>

<?

}





if ($mode == "on") {



    if ($valg == "Tilmeld") {

    // $mail

    // On E-mail er der allerede

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

    $antal = mysql_num_rows($res);

        if ($antal == "") {

        // $ip, $mail, $dato

        $ip = $REMOTE_ADDR;

        $tid = date("Y-m-d H:i:s");

        mysql_query("INSERT INTO mailliste (id,ip,mail,tid) VALUES ('','$ip','$mail','$tid')");

        print "Din E-mail er blevet tilføjet";

                            }

        else {

        print "E-mail adressen er allerede tilføjet";

        }

    } // End of tilmeld





    if ($valg == "Afmeld") {

    mysql_query("DELETE FROM mailliste WHERE mail = '$mail'");

    print "E-mail adresse afmeldt";

    }



} // End of valg.









?>
Avatar billede bacardil Nybegynder
08. august 2006 - 23:14 #1
Du kan evt. oprette en gratis mailingliste på www.mailingliste.dk
Avatar billede surfman Nybegynder
08. august 2006 - 23:17 #2
Nej tak, det skal ligge på siden, det skal ikke være noget useriøst, hvor der er reklamer osv... og iøvrigt virker linket ikke!
Avatar billede iss Novice
08. august 2006 - 23:20 #3
<form action="<?=$_SERVER['PHP_SELF']?>?mode=on" method="post">
    <input type="text" name="mail" size="30">
    <SELECT name="valg">
        <option value="Tilmeld" selected>Tilmeld!</option>
        <option value="Afmeld">Afmeld</option>
        </select>
<br>
<input type="submit" value="Submit">
</form>

<?
}
if (isset($_GET['mode']) && $_GET['mode'] == "on") {
    if ($_POST['valg'] == "Tilmeld") {
        // $mail
        // On E-mail er der allerede
        $res = mysql_query("SELECT * FROM mailliste WHERE mail = '".$_POST['mail']."'");
        $antal = mysql_num_rows($res);
        if ($antal == "") {
            // $ip, $mail, $dato
            $ip = $_SERVER['REMOTE_ADDR'];
            $tid = date("Y-m-d H:i:s");
            mysql_query("INSERT INTO mailliste (id,ip,mail,tid) VALUES ('','".$ip."','".$_POST['mail']."','".$tid."')");
            print "Din E-mail er blevet tilføjet";
        }
        else {
            print "E-mail adressen er allerede tilføjet";
        }
    } // End of tilmeld
    elseif ($valg == "Afmeld") {
        mysql_query("DELETE FROM mailliste WHERE mail = '".$_POST['mail']."'");
        print "E-mail adresse afmeldt";
    }

} // End of valg.
?>
Avatar billede surfman Nybegynder
09. august 2006 - 00:20 #4
Nice, virker men nu virker det der afmelding ikke, har opdateret siden så du kan se det. www.kki.dk/mailliste.php
Avatar billede iss Novice
09. august 2006 - 00:23 #5
elseif ($_POST['valg'] == "Afmeld") {
Avatar billede surfman Nybegynder
09. august 2006 - 00:24 #6
Har et andet problem der hvor man skal sende mails ud det virker ikke :S det gør det samme den bliver ved der hvor man sender ud, den skriver ikke news er sendt!.. Kan ses på http://www.kki.dk/sendmail.php

KODE:
--------------------

<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 surfman Nybegynder
09. august 2006 - 00:43 #7
fint det virker. er det muligt og få den der sendmail.php til og virke.
??
Avatar billede iss Novice
09. august 2006 - 00:55 #8
Læs op på $_POST/$_GET/$_REQUEST/$_SERVER, for som efter du ikke har inkluderet formen er det meget svært at gætte dig frem...
Avatar billede surfman Nybegynder
09. august 2006 - 11:10 #9
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>";
}
?>

Det øverste har jeg valgt ikke og skrive med da det er MYSQL oplysninger. Forstår ikke det med $_POST/$_GET/$_REQUEST/$_SERVER
Avatar billede iss Novice
09. august 2006 - 11:40 #10
if($sendt == "") skal du kigge op....
Avatar billede iss Novice
09. august 2006 - 11:41 #11
Avatar billede surfman Nybegynder
09. august 2006 - 13:07 #12
ja hvad med det, hvad skal jeg skrive der?
Avatar billede iss Novice
09. august 2006 - 13:23 #13
Er sendt en post eller get variabel?
Avatar billede surfman Nybegynder
09. august 2006 - 13:55 #14
det virker ikke som du kan se på http://www.kki.dk/sendmail.php

når du trykker på Send! så skriver den ikke nyhedsbrev er sendt.
Avatar billede iss Novice
09. august 2006 - 14:02 #15
Det var nu ment som hjælp til selvhjælp, men den var du vist ikke med på...
if(isset($_GET['sendt']) && $_GET['sendt'] == "") og nej jeg vil ikke rette alle dine PHP dokumenter til at passe på en server med reg global slået fra.
Avatar billede surfman Nybegynder
09. august 2006 - 15:08 #16
Har b-one, skal det der gloval været slået til eller fra?
Avatar billede surfman Nybegynder
09. august 2006 - 15:13 #17
Global*

Men nu rettede jeg det der if sendt til if(isset($_GET['sendt']) && $_GET['sendt'] == "")

Nu skriver den News er sendt på http://www.kki.dk/sendmail.php
og jeg har ingen mail fået, og jeg er tilmeldt kan jeg se.
og de jo menningen jeg skal trykke på en knap, og se hvor mange der vil få det.
Avatar billede iss Novice
09. august 2006 - 15:55 #18
Jeg ved ikke med B-gone, de går vist ikke meget op i sikkerhed, men register global skal sikkerheds messigt være slået fra.

Og hvad angår hvorfor du ikke får mail ved jeg ikke noget om, det er jo en class jeg ikke kender.
Avatar billede surfman Nybegynder
09. august 2006 - 17:43 #19
men hvis det der ikke kan virke så ved jeg ikke :S
Avatar billede surfman Nybegynder
09. august 2006 - 18:05 #20
Men du fik jeg et andet script til og virke, vil du hjælpe mig med så det kan udsende html mails så? Du skal selvføgelig have dine point + 100 ekstra.
Du kan se det på: http://www.kki.dk/web/admin.php
-------------------------------------
if ($action == "on") {

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

    while ($row = mysql_fetch_array($res)) {

    $afsender = "noreplay@kki.dk";

    $modtager = $row["mail"];

    mail($modtager,$emne,$besked,"From: $afsender \nContent-Type: text/plain;");

       

    }

    ?>Mail sendt<?

    exit;   

        }

    ?><form action="admin.php?mode=send&action=on" method="post">

    <table cellpadding="3" cellspacing="0" border="0" width="350">

    <tr>

    <td><font face="helvetica" size="2" color="#000000">Emne: </font></td>

    <td><input type="text" name="emne" size="30"></td>

    </tr><tr valign="top">

    <td><font face="helvetica" size="2" color="#000000">Besked: </font></td>

    <td><textarea cols="50" rows="10" name="besked"></textarea></td>

    </tr><tr>

    <td colspan="2"><input type="submit" value="SEND"></td>

    </tr></table></form>



    <?   

    }



if (!$mode) {

// Laver oversigt

?>

<font face="helvetica" size="2" color="#000000"><b><font size="+1">Oversigt:</b></font><br>

Her er en oversigt over, hvilke E-mail adresser der er tilmeldt maillisten.

<br>

<table cellpadding="1" cellspacing="2" border="0" width="100%" bgcolor="#FFFFFF">

<tr>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>#:</B></font></center></td>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>ID:</b></font></center></td>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>IP: </B></Font></Center></Td>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>E-mail: </b></font></center></td>

<td bgcolor="black"><center><font face="helvetica" size="2" color="#FFFFFF"><b>Dato & tid</b></font></center></td>

</Tr>

<?

$result = mysql_query("SELECT * FROM mailliste ORDER by tid desc");

$nummer = 1;

while (list($id, $ip, $mail, $tid) = mysql_fetch_row($result)) {

?>

<tr>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $nummer; $nummer++;?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $id; ?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $ip; ?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $mail; ?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $tid; ?></font></td>

</tr>

<?

}



?>

</table>

<?

}

?>

<br>

<a href="admin.php?mode=send">Send Mail til listen</a>

<br><br>
Avatar billede iss Novice
09. august 2006 - 18:10 #21
Jeg samler ikke på point, jeg er mere hjælp til selvhjælp, så læs om $_POST/$_GET/$_REQUEST.... og du kan så selv rette de ting.
Avatar billede surfman Nybegynder
09. august 2006 - 18:37 #22
:-(, ved du hvad problemet er den kan ikke sende HTML nyhedsbrev?
Avatar billede surfman Nybegynder
09. august 2006 - 18:52 #23
ok tror måske det virker nu, men nu skriver den når jeg prøver og sende besked så skriver den: mail fejlede.?
prøv selv og skrive et nyhedsbrev her:
http://kki.dk/web/admin.php?mode=send

KODE:
-------------------
if ($action == "on")
{
    $res = mysql_query("SELECT * FROM mailliste");
    while ($row = mysql_fetch_array($res))
    {
        $afsender = "YOUR@MAIL";
        $modtager = $row['mail'];
        $emne = $_POST['emne'];
        $besked = '<html>';
       
        // To send HTML mail, the Content-type header must be set
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
       
        // Additional headers
        $headers .= 'To: MODTAGER ' . $modtager . "\r\n";
        $headers .= 'From: AFSENDER ' . $afsender . "\r\n";
       
        if(mail($modtager, $emne, $besked, $headers))
        {
            echo 'Mail afsendt til: ' . $modtager . '<br />';
        }
        else
        {
            echo 'Mail fejlede til: ' . $modtager . '<br />';
        }
    }
    exit; 
}
Avatar billede surfman Nybegynder
09. august 2006 - 18:54 #24
eller kan man skrive $besked = '$_POST['besked']'; ?
Avatar billede surfman Nybegynder
09. august 2006 - 18:55 #25
Nej kan man vist ikke :P
Avatar billede iss Novice
09. august 2006 - 19:16 #26
Du skal erstatte $besked med $_POST['besked'] og du skal kigge efter action og mode også som jeg kan se det er det get.
Avatar billede surfman Nybegynder
09. august 2006 - 20:14 #27
FOrstår ikke og kigge efter action ?

Virker ikke det med $_POST['besked']
Avatar billede surfman Nybegynder
09. august 2006 - 20:19 #28
Den skriver
Mail fejlede til.......


        $afsender = "YOUR@MAIL";
        $modtager = $row['mail'];
        $emne = $_POST['emne'];
        $_POST['besked'] = '<html>';
Avatar billede surfman Nybegynder
09. august 2006 - 20:20 #29
Den skriver ikke $afsender = "YOUR@MAIL";
        $modtager = $row['mail'];
        $emne = $_POST['emne'];
        $_POST['besked'] = '<html>';
        :)

Det bare det som jeg har skrevet, alså hvis du sådan du menner jeg skal erstatte?

Hvis man sletter det der = <html.... så virker det heller ikke :(
Avatar billede iss Novice
09. august 2006 - 20:29 #30
Prøv at kigge på:
if ($action == "on") {
Hvor bliver action sat til on?
Avatar billede surfman Nybegynder
09. august 2006 - 20:34 #31
? ved ikke hvad skal der så stå?
Avatar billede surfman Nybegynder
09. august 2006 - 20:36 #32
`Jo fordi det hedder .on .....

    if ($action == "on")
{
    $res = mysql_query("SELECT * FROM mailliste");
    while ($row = mysql_fetch_array($res))
    {
        $afsender = "YOUR@MAIL";
        $modtager = $row['mail'];
        $emne = $_POST['emne'];
        $_POST['besked'] = '<html>';
       
        // To send HTML mail, the Content-type header must be set
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
       
        // Additional headers
        $headers .= 'To: MODTAGER ' . $modtager . "\r\n";
        $headers .= 'From: AFSENDER ' . $afsender . "\r\n";
       
        if(mail($modtager, $emne, $besked, $headers))
        {
            echo 'Mail afsendt til: ' . $modtager . '<br />';
        }
        else
        {
            echo 'Mail fejlede til: ' . $modtager . '<br />';
        }
    }
    exit; 
}

    ?><form action="admin.php?mode=send&action=on" method="post">

    <table cellpadding="3" cellspacing="0" border="0" width="350">

    <tr>

    <td><font face="helvetica" size="2" color="#000000">Emne: </font></td>

    <td><input type="text" name="emne" size="30"></td>

    </tr><tr valign="top">

    <td><font face="helvetica" size="2" color="#000000">Besked: </font></td>

    <td><textarea cols="50" rows="10" name="besked"></textarea></td>

    </tr><tr>

    <td colspan="2"><input type="submit" value="SEND"></td>

    </tr></table></form>



    <?   

    }



if (!$mode) {

// Laver oversigt

?>

<font face="helvetica" size="2" color="#000000"><b><font size="+1">Oversigt:</b></font><br>

Her er en oversigt over, hvilke E-mail adresser der er tilmeldt maillisten.

<br>

<table cellpadding="1" cellspacing="2" border="0" width="100%" bgcolor="#FFFFFF">

<tr>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>#:</B></font></center></td>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>ID:</b></font></center></td>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>IP: </B></Font></Center></Td>

<td bgcolor="#000000"><center><font face="helvetica" size="2" color="#FFFFFF"><b>E-mail: </b></font></center></td>

<td bgcolor="black"><center><font face="helvetica" size="2" color="#FFFFFF"><b>Dato & tid</b></font></center></td>

</Tr>

<?

$result = mysql_query("SELECT * FROM mailliste ORDER by tid desc");

$nummer = 1;

while (list($id, $ip, $mail, $tid) = mysql_fetch_row($result)) {

?>

<tr>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $nummer; $nummer++;?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $id; ?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $ip; ?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $mail; ?></font></td>

<td bgcolor="#EEEEEE"><font face="helvetica" size="2" color="#000000"><? print $tid; ?></font></td>

</tr>

<?

}



?>

</table>

<?

}

?>

<br>

<a href="admin.php?mode=send">Send Mail til listen</a>

<br><br>
Avatar billede iss Novice
09. august 2006 - 20:49 #33
Hvis jeg nu skriver at istedet for
if ($action == "on")
skal stå
if ($_GET['action'] == "on")
eller faktisk mere korrekt
if (isset($_GET['action']) && $_GET['action'] == "on")

Hvad skal så
if (!$mode) {
erstattes med?

Detter er absolut den sidste jeg laver for dig, hvis du vil have en til at lave hele dit site om til at kunne køre på reg global off så vil jeg anbefale dig at du kigger under opgaver istedet eller finder en at betale til at gøre det.
Avatar billede surfman Nybegynder
09. august 2006 - 21:22 #34
skal if (!$mode) { så erstattes med if ($_GET['mode'] hehe eller hvad?
Avatar billede iss Novice
09. august 2006 - 21:24 #35
Du kunne læse dig frem i manualen f.eks.
Avatar billede surfman Nybegynder
09. august 2006 - 21:25 #36
manualen :S forstår ikke?

Men det virker åbentbart ikke den skriver stadig mail fejlede.
Avatar billede surfman Nybegynder
09. august 2006 - 21:26 #37
og jeg har jo kun spurgt om 2 ting?
Avatar billede iss Novice
09. august 2006 - 21:31 #38
Jeg har gang på gang rettet de samme fejl igen og igen og igen og igen... det må have en ende hvor du selv kan se det og rette dem selv.
Avatar billede surfman Nybegynder
09. august 2006 - 21:35 #39
øøh hvorfor tror du jeg skriver her nok fordi jeg ikke kan vel
Avatar billede iss Novice
09. august 2006 - 21:42 #40
Som efter denne gruppe ikke er for at lave et helt website om, men hjælp til at kommevidere, det du vil have er en der laver al din kode om fra noget gammelt juks til not der kan bruges. Der skal du kigge i de grupper der hedder noget med opgaver.
Avatar billede surfman Nybegynder
09. august 2006 - 21:56 #41
Vil du hjælpe eller skal jeg lukke her? Kan ikke bruge det der til noget. Så må jeg jo lukke og oprette en ny med det her problem,?
Avatar billede iss Novice
09. august 2006 - 22:06 #42
Syntes jeg har hjulpet dig, men du er vist ikke villig til at gøre noget for det selv.
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