PHP - Mailing list
The following is an example of a class which can be used to handle a mailing list.
Everything is bundled into one class, for your quick start.
Commands are sent through GET requests, like this:
emaillist.php?command
Available commands are:
create - creates db table for storing addresses
list - lists all addresses in database
unsubscribe - displays unsubscribe form
write - displays form for writing messages
There are command which can be sent through POST request, and they are used through available forms.
<?php
class emaillist
{
var $DBServer = "localhost";
var $DBUser = "root";
var $DBPassword = "";
var $DBName = "test";
var $DBLink;
function DisplaySubscribeForm()
{
?>
<html>
<head>
<title>e-mail subscribe form</title>
</head>
<body>
<h2>User subscription form</h2>
<form action="emaillist.php" method="post">
Name<br>
<input type="text" name="f_name"><br>
e-mail<br>
<input type="text" name="f_eaddress"><br>
<input type="hidden" name="subscribe"><br>
<input type="submit">
</form>
</body>
</html>
<?php
}
function DisplayUnsubscribeForm()
{
?>
<html>
<head>
<title>e-mail unsubscribe form</title>
</head>
<body>
<h2>User unsubscription form</h2>
<form action="emaillist.php" method="post">
e-mail<br>
<input type="text" name="f_eaddress"><br>
<input type="hidden" name="unsubscribe"><br>
<input type="submit">
</form>
</body>
</html>
<?php
}
function DisplayWriteMessageForm()
{
?>
<html>
<head>
<title>Write message form</title>
</head>
<body>
<h2>Write message form</h2>
<form action="emaillist.php" method="post">
Subject<br>
<input type="text" name="f_subject"><br>
Message body<br>
<textarea name="f_message" rows=5 cols=40></textarea><br>
<input type="hidden" name="send"><br>
<input type="submit">
</form>
</body>
</html>
<?php
}
function DBConnect()
{
if ($this->DBLink = new mysqli($this->DBServer, $this->DBUser, $this->DBPassword, $this->DBName))
return $this->DBLink;
}
function DBDisconnect()
{
$this->DBLink->close();
}
function CreateAddressStorage()
{
$query = "create table addressstorage ( " .
"id int(11) NOT NULL auto_increment, " .
"name varchar(250), " .
"address varchar(250), " .
"primary key (Id))";
$this->DBConnect();
if ($result = $this->DBLink->query($query))
echo "Success: Address storage created";
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function ListAddresses()
{
$query = "select * from addressstorage";
$this->DBConnect();
if ($result = $this->DBLink->query($query))
{
?>
<html>
<head>
<title>Address storage</title>
</head>
<body>
<p> Address list </p>
<pre>
<?php
printf("%8s | %50s | %50s\n", "User ID", "Name", "Address");
while ($row = $result->fetch_assoc())
printf("%8d | %50s | %50s\n", $row["id"], $row["name"], $row["address"]);
?>
</pre>
</body>
</html>
<?php
}
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function Subscribe()
{
$query = "insert into addressstorage (name, address) " .
"values (\"" . $_POST["f_name"] . "\", \"" .
$_POST["f_eaddress"] . "\")";
$this->DBConnect();
if ($this->DBLink->query($query))
echo "Success: User subscribed";
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function Unsubscribe()
{
$query = "delete from addressstorage where address = \"" . $_POST["f_eaddress"] . "\"";
$this->DBConnect();
if ($this->DBLink->query($query))
echo "Success: User unsubscribed";
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function SendMessages()
{
$query = "select * from addressstorage";
$this->DBConnect();
if ($result = $this->DBLink->query($query))
{
?>
<html>
<head>
<title>Sending messages</title>
</head>
<body>
<p> Sending messages </p>
<pre>
<?php
$Header = "From: Email list deamon<sender@server>";
printf("%50s | %8s\n", "Name", "Sent");
while ($row = $result->fetch_assoc())
{
if (mail($row["address"], $_POST["f_subject"], $_POST["f_message"], $Header))
printf("%50s | %8s\n", $row["address"], "Yes");
else
printf("%50s | %8s\n", $row["address"], "No");
}
?>
</pre>
</body>
</html>
<?php
}
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
}
$el = new emaillist;
if (isset($_GET["create"]))
$el->CreateAddressStorage();
else
if (isset($_GET["list"]))
$el->ListAddresses();
else
if (isset($_POST["subscribe"]))
$el->Subscribe();
else
if (isset($_GET["unsubscribe"]))
$el->DisplayUnsubscribeForm();
else
if (isset($_POST["unsubscribe"]))
$el->Unsubscribe();
else
if (isset($_GET["write"]))
$el->DisplayWriteMessageForm();
else
if (isset($_POST["send"]))
$el->SendMessages();
else
$el->DisplaySubscribeForm();
?>
class emaillist
{
var $DBServer = "localhost";
var $DBUser = "root";
var $DBPassword = "";
var $DBName = "test";
var $DBLink;
function DisplaySubscribeForm()
{
?>
<html>
<head>
<title>e-mail subscribe form</title>
</head>
<body>
<h2>User subscription form</h2>
<form action="emaillist.php" method="post">
Name<br>
<input type="text" name="f_name"><br>
e-mail<br>
<input type="text" name="f_eaddress"><br>
<input type="hidden" name="subscribe"><br>
<input type="submit">
</form>
</body>
</html>
<?php
}
function DisplayUnsubscribeForm()
{
?>
<html>
<head>
<title>e-mail unsubscribe form</title>
</head>
<body>
<h2>User unsubscription form</h2>
<form action="emaillist.php" method="post">
e-mail<br>
<input type="text" name="f_eaddress"><br>
<input type="hidden" name="unsubscribe"><br>
<input type="submit">
</form>
</body>
</html>
<?php
}
function DisplayWriteMessageForm()
{
?>
<html>
<head>
<title>Write message form</title>
</head>
<body>
<h2>Write message form</h2>
<form action="emaillist.php" method="post">
Subject<br>
<input type="text" name="f_subject"><br>
Message body<br>
<textarea name="f_message" rows=5 cols=40></textarea><br>
<input type="hidden" name="send"><br>
<input type="submit">
</form>
</body>
</html>
<?php
}
function DBConnect()
{
if ($this->DBLink = new mysqli($this->DBServer, $this->DBUser, $this->DBPassword, $this->DBName))
return $this->DBLink;
}
function DBDisconnect()
{
$this->DBLink->close();
}
function CreateAddressStorage()
{
$query = "create table addressstorage ( " .
"id int(11) NOT NULL auto_increment, " .
"name varchar(250), " .
"address varchar(250), " .
"primary key (Id))";
$this->DBConnect();
if ($result = $this->DBLink->query($query))
echo "Success: Address storage created";
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function ListAddresses()
{
$query = "select * from addressstorage";
$this->DBConnect();
if ($result = $this->DBLink->query($query))
{
?>
<html>
<head>
<title>Address storage</title>
</head>
<body>
<p> Address list </p>
<pre>
<?php
printf("%8s | %50s | %50s\n", "User ID", "Name", "Address");
while ($row = $result->fetch_assoc())
printf("%8d | %50s | %50s\n", $row["id"], $row["name"], $row["address"]);
?>
</pre>
</body>
</html>
<?php
}
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function Subscribe()
{
$query = "insert into addressstorage (name, address) " .
"values (\"" . $_POST["f_name"] . "\", \"" .
$_POST["f_eaddress"] . "\")";
$this->DBConnect();
if ($this->DBLink->query($query))
echo "Success: User subscribed";
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function Unsubscribe()
{
$query = "delete from addressstorage where address = \"" . $_POST["f_eaddress"] . "\"";
$this->DBConnect();
if ($this->DBLink->query($query))
echo "Success: User unsubscribed";
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
function SendMessages()
{
$query = "select * from addressstorage";
$this->DBConnect();
if ($result = $this->DBLink->query($query))
{
?>
<html>
<head>
<title>Sending messages</title>
</head>
<body>
<p> Sending messages </p>
<pre>
<?php
$Header = "From: Email list deamon<sender@server>";
printf("%50s | %8s\n", "Name", "Sent");
while ($row = $result->fetch_assoc())
{
if (mail($row["address"], $_POST["f_subject"], $_POST["f_message"], $Header))
printf("%50s | %8s\n", $row["address"], "Yes");
else
printf("%50s | %8s\n", $row["address"], "No");
}
?>
</pre>
</body>
</html>
<?php
}
else
echo "Failure: " , $this->DBLink->error;
$this->DBDisconnect();
}
}
$el = new emaillist;
if (isset($_GET["create"]))
$el->CreateAddressStorage();
else
if (isset($_GET["list"]))
$el->ListAddresses();
else
if (isset($_POST["subscribe"]))
$el->Subscribe();
else
if (isset($_GET["unsubscribe"]))
$el->DisplayUnsubscribeForm();
else
if (isset($_POST["unsubscribe"]))
$el->Unsubscribe();
else
if (isset($_GET["write"]))
$el->DisplayWriteMessageForm();
else
if (isset($_POST["send"]))
$el->SendMessages();
else
$el->DisplaySubscribeForm();
?>
Related Marakana Courses
- PHP and MySQL Bootcamp Training
July 1st, 2009 at 7:22 am
Эта заметка была разослана группой лиц,
которые решили встать на защиту целителя, который помог им в жизни.
Имя целителя о котором пойдет речь - Маг Тамерлан.
Маг Тамерлан - это тот человек который действительно помог нам в наших проблемах.
Мы все получили результат и благодарны ему за это!
Вы спросите а где же вы нашли друг друга?
Все мы познакомились на разных форумах в инете и нас
объединила одна тема: обвинение со стороны неизвестных в том, что
Маг Тамерлан жулик!
Нас крайне возмутила такая позиция, тех кто распространяет
про него такую информацию! Причем информация сделана довольно объемна,
переплетена с реальными фактами, какими-то фотографиями, якобы
расследованиями и скомпонована таким образом, чтобы очернить Мага Тамерлана.
Причем самое интересное, что это не просто негативные отзывы а целая
черная PR компания, состояние из перекручивания фактов, подменой
логических связей и т.д. Прям как в политике.
Мы хотим сообщить вам: все, кто эту информацию распространяют
мошенники для которых Маг Тамерлан несет реальную угрозу.
Почему? Да потому, что все больше людей начинает обращаться к
настоящему мастеру а не к этим жуликам.
Конечно им это не нравится, конечно они теряют доходы, вот и пытаются
они таким образом очернить Мага Тамерлана.
Но у них из этого ничего не выйдет, так как есть такие люди, как я!
Тамерлан излечил моего ребенка, спас жизнь моему сокровищу и я гораздо
более весомое свидетельство его профессионализма чем
тысячи негативных публикаций
распространенных разными негодяями, у которых нет ничего святого, которые
наживаются на чужом горе, да и еще так подло борются с теми кто
действительно помогает людям.
И это не только мои слова. Я познакомилась в интернете с
десятками людей которым помог Тамерлан, один из них и помогает мне делать
эти публикации.
На последок хочу сказать всем - люди не верьте
тому, что пишут!
Слушайте свое сердце!
Думайте своей головой!
Не дайте шарлатанам сбить Вас с пути!
Не пройдите мимо того, кто вам поможет.
July 23rd, 2009 at 3:45 pm
списки кандидатов, выдвигаемые партиями политическими и избирательными объединениями (блоками) для выборах в представительные органы, проводимые по пропорциональной избирательной системе.
August 12th, 2009 at 5:58 am
Здравствуйте, меня зовут Владимир. На данном этапе своей профессиональной деятельности я решил заняться созданием полезных сайтов, на которых Вы узнаете не только много нового о финансах, но и познакомитесь с компанией, которая полностью будет отвечать Вашим требованиям.
Финансовой тематикой заинтересовался давно, изучал различные компании, проводил параллели и пришел к выводу, что новичку разобраться трудно. Именно поэтому всем, кто ориентируется на достижение успеха, я советую компанию FOREX MMCIS group (forex-mmcis.ru).
На данный момент я являюсь партнером этой компании и могу с уверенностью сказать, что все обещания исполняются. Заходите на мой сайт и узнайте подробности выгодного сотрудничества.
С уважением, Владимир.
August 30th, 2009 at 3:34 am
Автор выпей яду, я тебе как профессионал могу сказать что пишеш ты откровенный бред никак не похожий на реальное положение дел.
September 7th, 2009 at 3:59 pm
Предлагаю рассылку рекламы:
-на форумы 15$ на 30000 форумов
-на доски 6$ на 10000
-регистрация в каталогах 6$ на 6000
E-mail: rek765@rambler.ru
Базы свежие, использую лицензионную программу с распознованием капчи.
October 2nd, 2009 at 3:07 pm
Предлагаю раскрутку сайтов путем рассылки рекламы:
-на форумы 20$ на 30000 форумов
-на доски 6$ на 10000 досок
-регистрация в каталогах 6$ на 6000 каталогов
-ручная регистрация влюбых ресурсах 0.2$ за регистрацию
-за 50$ 1000 уникальных посетителей
-делаю сайты от 30$ баннеры от 10$
E-mail: nord564@mail.ru
Базы свежие, использую лицензионную программу с распознованием капчи.
April 20th, 2010 at 5:16 am
Предлагаю рассылки рекламы:
- на форумы 20$ на 50000 форумов
- регистрация в белых каталогах сайтов 10$ на 6000 каталогах
- на доски бесплатных объявлений интернета 10$ на 20000 досок
- ручная рассылка рекламы в любые ресурсы 0.2$ за регистрацию
минимальный заказ 50 регистраций, сбор сайтов входит в стоимость.
- сбор баз любых сайтов
- изготовление сайтов
E-mail: das734@mail.ru