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æ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øje din e-mailaddresse til mailinglisten!");
}
}
} else {
if (!isset($msg)) {
$msg = urlencode("E-mailen er allerede tilføjet!");
}
}
@ fclose($handle);
} else {
if (!isset($msg)) {
$msg = urlencode("Kunne ikke å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æses fra filen. Din email-adresse er IKKE slettet...");
}
}
if (isset($msg)) {
header("Location: mail.php?msg=$msg");
}
}
################### UKENDT ###########################
else {
$msg = urlencode("Ukendt forespørgsel!");
header("Location: mail.php?msg=$msg");
}
################### FORMULAR ###########################
} else {
if (isset ($_GET['mode']) && $_GET['mode'] == "addsuccess") {
echo "Din e-mailaddresse er tilfø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øje din e-mail til mailinglisten.<br />Indtast din e-mail i boxen herunder, og klik af, om den skal tilføjes eller slettes fra listen. Derefter trykker du bare udfø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
<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ør">
</td>
</tr>
</table>
</form>
END;
}
echo "$linebreaker</body>$linebreaker</html>";
ob_end_flush();
?>

Great code
Anonymous — October 7, 2009 - 11:14Thanks for code.. Great job
Marka Tescil