You are here

Source for ASCII PHP mailing list

This is the source for the ASCII PHP mailing list script I wrote back in high school.
Sorry about the lack of comments, but the script was documented in a report. I can propably dig it out of my hides if anybody is interested.

The messages and comments are in danish. If you think that this script could be usefull for you and you don''t speak danish, throw me an email.

Anyway, here''s the source:

<?php
ob_start
();

/**
*    Mailingliste gemt i ASCII-fil
*    Skrevet af Steffen Bach (steffen at farmerzonen dot dk)
*    Bugs og kommentarer til ovennaevnte email-adresse
**/

/**
* BEMAERK #1: Der bliver ikke lavet validering paa email-adressen
*             udover tjekket om der er skrevet noget i inputboksen
**/

/**
* BEMAERK #2: Scriptet er som standard lavet til at virke paa *nix-systemer,
*             derfor skal variablen $linebreaker tilpasses, hvis det skal afvikles paa andre platforme!
*             \n skal aendres til \r hvis det skal virke paa en mac.
*             \n skal aendres til \r\n for at virke paa en Windows-maskine...
**/

################### SETTINGS ##########################

/**
* Hvilken fil skal der arbejdes paa?
* Denne fil skal oprettes manuelt!
* Husk at CHMODe filen til mindst 746
**/
$email_file "fil.txt";     

$linebreaker "\n";  // Se BEMAERK #2

// ingen aendringer under denne linie med mindre du ved hvad du goer
###################################################
?>
<html>
    <head>
        <title>Mailingliste</title>
        <style type="text/css">
        span.red {color: red;}
        </style>
    </head>

<body>
<h2>Mailingliste</h2>
<?php
if (isset ($_GET['mode']) && $_GET['mode'] == "do" && isset($_POST['submit'])) {
    
$action $_POST['action'];
    
$mail $_POST['email'];
    if (!isset (
$action)) {
        
$msg urlencode("Du mangler at v&aelig;lge om e-mailaddressen skal tilmeldes eller frameldes!");
    }

    if (
strlen($mail) == 0) {
        if (!isset(
$msg)) {
            
$msg urlencode("Du mangler at skrive din e-maildresse!");
        }
    }
    
    if (isset(
$msg)) {
        
header("Location: mail.php?msg=$msg");
    }
    
    
################### TILMELD ##########################
    
if ($action == 1) {
        if (@ 
is_writeable($email_file)) {
            if (
$handle = @ fopen($email_file'a')) {
                
$existing_mails = @ file($email_file);
                
$already 0;
                for (
$i $i count($existing_mails) ; $i++) {
                    if (
substr($existing_mails[$i], 0, (-strlen($linebreaker))) == $mail) {
                        
$already 1;
                    }
                }
                if (
$already == 0) {
                    if (@ 
fwrite($handle$mail $linebreaker)) {
                        
header("Location: mail.php?mode=addsuccess");
                    } else {
                        if (!isset(
$msg)) {
                            
$msg urlencode("Kunne ikke tilf&oslash;je din e-mailaddresse til mailinglisten!");
                        }
                    }
                } else {
                    if (!isset(
$msg)) {
                        
$msg urlencode("E-mailen er allerede tilf&oslash;jet!");
                    }
                }
                @ 
fclose($handle);
            } else {
                if (!isset(
$msg)) {
                    
$msg urlencode("Kunne ikke &aring;bne forbindelsen til filen med mailinglisten!");
                }
            }
        } else {
            if (!isset(
$msg)) {
                
$msg urlencode("Der kan ikke skrives til filen med mail-addresserne!");
            }
        }
        
        if (isset(
$msg)) {
            
header("Location: mail.php?msg=$msg");
        }
    }
        
    
    
################### AFMELD ###########################
    
elseif ($action == 0) {
        if (
$existing_mails = @ file($email_file)) {
            
$bingo = -1;
            for (
$i $i count($existing_mails) ; $i++) {
                if (
$mail != str_replace($linebreaker""$existing_mails[$i])) {
                    
$str .= $existing_mails[$i];
                } else {
                    
$bingo $i;
                }
            }

            if (@ 
is_writeable($email_file)) {
                if ((
$bingo > -1)) {
                    if ((
$handle = @ fopen($email_file'w')) && (@ fwrite($handle$str) !== FALSE)) {
                        
header("Location: mail.php?mode=remsuccess");
                    } else {
                        if (!isset (
$msg)) {
                            
$msg urlencode("Din e-mailaddresse kunne ikke fjernes fra listen...");
                        }
                    }
                } else {
                    if (!isset (
$msg)) {
                        
$msg urlencode("Email-adressen eksisterer ikke i listen...");
                    }
                }
                @ 
fclose($handle);
            } else {
                if (!isset (
$msg)) {
                    
$msg urlencode("Der kan ikke skrives til filen. Din email-adresse er IKKE slettet...");
                }
            }
        } else {
            if (
count($existing_mails) == && !isset($msg)) {
                
$msg urlencode("Filen er tom. Ingen email-adresser at slette...");
            }
            
            if (!isset (
$msg)) {
                
$msg urlencode("Der kan ikke l&aelig;ses fra filen. Din email-adresse er IKKE slettet...");
            }
        }

        if (isset(
$msg)) {
            
header("Location: mail.php?msg=$msg");
        }
    }
    
    
    
################### UKENDT ###########################
    
else {
        
$msg urlencode("Ukendt foresp&oslash;rgsel!");
        
header("Location: mail.php?msg=$msg");
    }
    

################### FORMULAR ###########################
} else {
    if (isset (
$_GET['mode']) && $_GET['mode'] == "addsuccess") {
        echo 
"Din e-mailaddresse er tilf&oslash;jet til mailinglisten...<br /><br />$linebreaker";
    }

    if (isset (
$_GET['mode']) && $_GET['mode'] == "remsuccess") {
        echo 
"Din e-mailaddresse er fjernet fra mailinglisten...<br /><br />$linebreaker";
    }
    if (isset (
$_GET['msg'])) {
        echo 
"<span class=\"red\">"$_GET['msg'], "</span><br /><br />$linebreaker";
    }

    print <<<END
    Her kan du tilf&oslash;je din e-mail til mailinglisten.<br />Indtast din e-mail i boxen herunder, og klik af, om den skal tilf&oslash;jes eller slettes fra listen. Derefter trykker du bare udf&oslash;r, og du er enten tilmeldt eller frameldt listen.<br /><br />$linebreaker
<form action="mail.php?mode=do" method="post">
    <table border="0" cellpadding="0" cellspacing="0" width="300">
        <tr>
            <td>
                <input type="radio" name="action" value="1">Tilmeld&nbsp;&nbsp;
                <input type="radio" name="action" value="0">Frameld
            </td>
        </tr>
        <tr>
            <td width="300">
                <input type="text" name="email" style="width: 100%" />
            </td>
        </tr>
        <tr>
            <td align="right">
                <input type="submit" name="submit" value="Udf&oslash;r">
            </td>
        </tr>
    </table>
</form>
END;
}
echo 
"$linebreaker</body>$linebreaker</html>";
ob_end_flush();
?>

Powered by Drupal