• LOGIN

farmerzonen.dk

  • ascii php mailing list
  • gentoo on ibm x60s
  • gentoo on znote 4200
  • curriculum vitae
Home

Source for ASCII PHP mailing list

zpejder — August 23, 2005 - 20:31

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 = 0 ; $i < count($existing_mails) ; $i++) {
                    if (
substr($existing_mails[$i], 0, (-1 * 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 = 0 ; $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) == 0 && !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();
?> 

  • Add new comment
  • Printer-friendly version

Great code

Anonymous — October 7, 2009 - 11:14

Thanks for code.. Great job

Marka Tescil

  • reply

Search

  • ascii php mailing list
  • gentoo on ibm x60s
  • gentoo on znote 4200
  • curriculum vitae

© Farmerzonen.dk 2009