Avatar billede gnutella Nybegynder
01. oktober 2004 - 11:08 Der er 1 løsning

Maillist problemer

Hej Alle.

Jeg har et mindre problem med min mailliste. Jeg vil gerne have udviddet den, således at når en person tilmelder sig, vil personen modtage en mail med en bekræftigelse. Det kunne være kanon hvis en eller anden lige ville fikse den...

På forhånd tak...

PHP filerne der benyttes til maillisten:

Mailadmin.php

<?
if (!$PHP_AUTH_USER || !$PHP_AUTH_PW)
{
    // If empty, send header causing dialog box to appear
    header('WWW-Authenticate: Basic realm="Mailing List admin"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Authorization Required.';
    exit;
}
else
{
    $tu = strtolower($PHP_AUTH_USER);
    $pu = strtolower($PHP_AUTH_PW);
    include("config.php");   
    if ($tu == strtolower($adminusername) && $pu == strtolower($adminpassword))
    {
        $fd = fopen ($listfile, "r");
        $contents = fread ($fd, filesize ($listfile));
        fclose ($fd);
        $entries = explode(",",$contents);
        for($i=0;$i<count($entries);$i++)
        {
            if ($entries[$i] != "")
                $choices .= "<OPTION VALUE=\"$entries[$i]\"> ".$entries[$i]."\n";
        }
       
        if ($cmd != "send")
        {
            $output = "
            <form action=\"?cmd=send\" method=\"post\">
            <table align=\"left\">
            <tr>
                <td>
                <SELECT MULTIPLE SIZE=5 NAME=sendto[]>
                <OPTION VALUE=\"All\" selected>Send til alle
                    $choices
                </select>
                </td>
            </tr>
            </table>
            <table align=\"center\">
            <tr>
                <td nowrap>Emne på mail:</td><td><input type=\"text\" size=\"30\" name=\"subject\"></td>
            </tr>
            <tr>
                <td nowrap valign=\"top\">Meddelelsens indhold:</td><td><textarea name=\"body\" rows=\"8\" cols=\"50\"></textarea></td>
            </tr>
            <tr>
                <td></td>
                <td><input type=\"checkbox\" name=\"useheader\" value=\"yes\"> Indsæt overskrift
                <input type=\"checkbox\" name=\"usefooter\" value=\"yes\"> Indsæt E-signatur</td>
            </tr>
            <tr>
                <td></td>
                <td><input type=\"submit\" value=\"Send Mail\"></td>
            </tr>
            <tr>
                <td></td>
                <td>Vær opmærksom på at der kan gå lidt tid før mailen er sendt til alle.</td>
            </tr>
            </table>
            ";
        }else
        {
            for ($i=0;$i<count($sendto);$i++)
            {
                echo "".$sendto[$i]." <br>";
            }
           
            $footerd = fopen ($footerfile, "r");
            $thefooter = fread ($footerd, filesize ($footerfile));
            fclose ($footerd);

            $headerd = fopen ($headerfile, "r");
            $theheader = fread ($headerd, filesize ($headerfile));
            fclose ($headerd);
           
            if ($useheader == "yes")
                $message .= "".$theheader."\n\n";
           
            $message .= "".$body."\n\n";
           
            if ($usefooter == "yes")
                $message .= "".$thefooter."";
       
            if ($sendto[0] == "All")
            {
                for($i=0;$i<count($entries);$i++)
                {
                    mail($entries[$i], $subject, $message,
                        "From: ".$fromemail."");
                }
            }
            else
            {
                for($i=0;$i<count($sendto);$i++)
                {
                    mail($sendto[$i], $subject, $message,
                        "From: ".$fromemail."");
                }
            }
            $output = "sent";
        }
        echo $output;
     

    }
    else // Does output if username/password is incorrect
    {
        echo " <html><body>Invalid Login/Password</body></html> ";
    }
}

Maillist.php

<?
error_reporting(0);
include("config.php");

function checkmail ($email)
{
    global $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
   
    if (@stristr($contents,$email))
        $valid = "invalid";
    if (eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email) && !isset($valid))
        $valid = "valid";
    else
        $valid = "invalid";
   
    return $valid;
}

if ($action == "subscribe" && isset($email))
{
    $valid = checkmail($email);
    if ($valid == "valid")
    {
        $fp = fopen($listfile, 'a+');
            flock($fp,2);
            fwrite($fp,"".strtolower($email).",");
        fclose($fp);
        header ("Location: ".$welcome."");
        exit;               

    }
    else {
        header ("Location: ".$error."");
        exit;               
    }
}   
elseif ($action == "unsubscribe" && isset($email))
{
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode(",",$contents);
    for($i=0;$i<count($entries);$i++)
    {
        if (strtolower($email) == strtolower($entries[$i]))
            $found = "yes";
        elseif ($entries[$i] != "")
            $allpeople .= "".$entries[$i].",";
    }
    if ($found == "yes")
    {
        $fp = fopen($listfile, 'w');
            fwrite($fp,$allpeople);
        fclose($fp);
    }
    header ("Location: ".$goodbye."");
    exit;               
   
}
else
    header ("Location: ".$error."");
    exit;               
?>

Config.php

<?
error_reporting(0);
$listfile = "list.txt";
$headerfile = "header.txt"; // The header for an email message (when in admin you can choose not to include it)
$footerfile = "footer.txt"; // The footer for an email message (when in admin you can choose not to include it)

$adminusername = "bruger";    // Username for logging in to mailadmin.php
$adminpassword = "password"; // password for logging in to mailadmin.php
$fromemail = "mail@mail.dk";            // Email address the emails will be sent from.

$welcome = "e-nyt-tilmeld.php"; // file it redirects to after signing up
$goodbye = "e-nyt-afmeld.php"; // file it redirects to after removing yourself from the list
$error = "e-nyt-fejl.php"; // file it redirects to if its in invalid email etc
?>
Avatar billede gnutella Nybegynder
26. oktober 2004 - 09:19 #1
Jeg lukker lige.

Jeg har endnu ikke haft tid til at finde en løsning på problemet
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