Newsletterscript mit MySQL
Wie schon im Blog versprochen zeige ich euch hier, wie ihr ein komplettes Newsletterscript programmieren könnt:
1. Schritt:
Erstellt eine MySQL-Datenbank und eine Tabelle mit 6 Feldern und führt folgenden MySQL-Befehl aus:
[code:1]CREATE TABLE `newsletter` (
`ID` int(11) NOT NULL auto_increment,
`email` text NOT NULL,
`bestellt` text NOT NULL,
`abbestellt` text NOT NULL,
`ip` text NOT NULL,
`bestaetigt` int(11) NOT NULL default '0',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;[/code:1]
2.Schritt:
Erstellt eine Datei für die MySQL-Verbindung, am besten nach folgender
Anleitung
3. Schritt
Erstellt eine Newsletteroberfläche für eure Besucher:
newsletter.php
[code:1]<?php
include ('connect.php'); // MySQL-Verbindung aufbauen
if(isset($_POST['anmelden']) && !empty($_POST['email']) && eregi('@',$_POST['email'])) // Formulardaten auf korrekte Eingabe überprüfen
{
$email = $_POST['email'];
$text = "Bitte bestätigen Sie Ihre Newsletteranmeldung:\n\nhttp://www.domain.tld/?e=newsletter_bestaetigen&email=".$email; // Dieser Text wird in einer Bestätigunsemail an den Besucher geschickt, hier müssen Sie hier Domain eintragen!
$handle = mysql_query("SELECT email,abbestellt FROM newsletter");
if(mysql_num_rows($handle) > 0)
{
while($row = mysql_fetch_assoc($handle))
{
if(($_POST['email'] == $row['email']) && ($row['abbestellt'] == NULL))
{
$status = "Sie sind bereits Abonennt des Newsletters"; //, weil die Email-Adresse in der Datenbank schon vorhanden ist, aber noch nicht abbestellt wurde
}
else if(($_POST['email'] == $row['email']) && ($row['abbestellt'] != NULL))
{
mysql_query("INSERT INTO newsletter (email,bestellt,ip,bestaetigt) VALUES ('$email','$bestellt','$ip', 'nein')");
mail($email, 'Bestätigung', $text);
$status = "Eine Email wurde an Ihre Adresse geschickt, bitte clicken Sie dort auf den Bestätigungslink!"; //, zwar ist die Email-Adresse schon eingetragen, wurde aber bereits abbestellt, damit ist eine erneute Anmeldung wieder wirksam
}
else
{
$bestellt = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
if(mysql_query("INSERT INTO newsletter (email,bestellt,ip,bestaetigt) VALUES ('$email','$bestellt','$ip', 'nein')"))
{
mail($email, 'Bestätigung', $text);
$status = "Eine Email wurde an Ihre Adresse geschickt, bitte clicken Sie dort auf den Bestätigungslink!";
}
else
{
$status = "Fehler beim Eintragen Ihrer Emailadresse, bitte probieren Sie es später noch einmal.";
}
}
}
}
else
{
$bestellt = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
if(mysql_query("INSERT INTO newsletter (email,bestellt,ip,bestaetigt) VALUES ('$email','$bestellt','$ip', 'nein')"))
{
mail($email, 'Bestätigung', $text);
$status = "Eine Email wurde an Ihre Adresse geschickt, bitte clicken Sie dort auf den Bestätigungslink!";
}
else
{
$status = "Fehler beim Eintragen Ihrer Emailadresse, bitte probieren Sie es später noch einmal.";
}
}
}
if(isset($_POST['abmelden']) && !empty($_POST['email'])) // Bedingung für das Abmelden
{
$abbestellt = date("Y-m-d");
$email = $_POST['email'];
if(mysql_query("UPDATE newsletter SET abbestellt = '$abbestellt' WHERE email = '$email'"))
{
$status = "Ihre Emailadresse ".$email." wurde erfolgreich aus unserem Newsletter entfernt.";
}
}
?>
<h3 style="font-size:10pt;font-family:verdana;margin-top:40px;color:#000000;font-style:italic;text-decoration:underline;">Newsletter:</h3>
<br><br>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" name="email" value="Ihre Email-Adresse"><br>
<input type="submit" name="anmelden" value="anmelden"><br>
<input type="submit" name="abmelden" value="abmelden">
</form>
<?php echo $status;?>[/code:1]
4. Schritt:
Ihr benötigt eine Datei, die beim Aufrufen des Bestätigungslinkes für den Besucher erscheint:
newsletter_bestaetigung.php
[code:1]<?php
include_once ('connect.php');
$email = $_GET['email'];
if(mysql_query("UPDATE newsletter SET bestaetigt = 'ja' WHERE email = '$email'"))
{
$status = "Ihre Emailadresse wurde erfolgreich bestätigt.";
}
else
{
$status = "Fehler beim bestätigen Ihrer Email-Adresse";
}
?>
<h3 style="font-size:10pt;font-family:verdana;margin-top:40px;color:#000000;font-style:italic;text-decoration:underline;">Newsletterbestätigung:</h3>
<?php echo $status;?>[/code:1]
Nun seid ihr so weit, dass sich Besucher bei eurem Newsletter anmelden können, jetzt benötigt ihr als Webmaster aber auch noch eine Verwaltung der Adressen, so wie die Möglichkeit einen Newsletter zu verfassen, der sich an die Abonennten verschickt.
5. Schritt
Jetzt wollen wir die Verwaltung für die Abonennten einrichten, die uns auch die Möglichkeit des Löschens eines Abonennten gibt:
newsletter_verwalten.php
[code:1]<?php
if(isset($_POST['abonennt_loeschen']) && isset($_POST['abonennt']))
{
$id = $_POST['abonennt'];
if(mysql_query("DELETE FROM newsletter WHERE ID = '$id'"))
{
$status = "Abonennt wurde erfolgreich aus der Datenbank entfernt.";
}
else
{
$status = "Fehler beim Entfernen des Abonennts.";
}
}
?>
<h3>Newsletter verwalten:</h3>
<br><br>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="POST">
<table style="border:0px solid #ffffff;width:90%;" cellspacing="0" cellpadding="0">
<tr>
<td><b>Emailadresse:</b></td>
<td><b>Bestellt am:</b></td>
<td><b>Abbestellt am:</b></td>
<td><b>IP-Adresse:</b></td>
<td><b>Bestätigt:</b></td>
<td><b>Löschen:</b></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?php
$handle = mysql_query("SELECT ID,email,bestellt,abbestellt,ip,bestaetigt FROM newsletter ORDER BY bestellt");
if(mysql_num_rows($handle) > 0)
{
while($row = mysql_fetch_assoc($handle))
{
$result .= "<tr><td>".$row['email']."</td><td>".$row['bestellt']."</td><td>".$row['abbestellt']."</td><td>".$row['ip']."</td><td>".$row['bestaetigt']."</td><td><input type=\"radio\" name=\"abonennt\" value=\"".$row['ID']."\"/></td></tr>";
}
echo $result;
}
else
{
$status = "Keine Abonennten im Newsletter eingetragen";
}
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td><input type="submit" name="abonennt_loeschen" value="Abonennt entfernen" /></td>
</tr>
</table>
</form>
<br>
<?php echo "<b>".$status."</b>"; ?>[/code:1]
6. Schritt
Zum Schluss noch die Datei, mit der Ihr eure Newsletter verfassen und an die bestätigten Abonennten verschicken könnt:
[code:1]<?php
if(isset($_POST['newsletter_senden']) && !empty($_POST['betreff']) && !empty($_POST['text']))
{
$handle = mysql_query("SELECT email,abbestellt FROM newsletter WHERE bestaetigt = 'ja'");
if(mysql_num_rows($handle) > 0)
{
while($row = mysql_fetch_assoc($handle))
{
if(empty($row['abbestellt']))
{
$header = 'From: Domain.tld';
mail($row['email'], $_POST['betreff'], $_POST['text'], $header);
}
else
{
$status = "Keine Abonennten zum Empfangen des Newsletters eingetragen.";
}
}
if(empty($status))
{
$status = "Newsletter wurde erfolgreich versandt.";
}
}
else
{
$status = "Keine Abonennten zum Empfangen des Newsletters eingetragen.";
}
}
?>
<h3>Newsletter verfassen:</h3>
<br>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="POST">
<table cellspacing="0" cellpadding="2">
<tr>
<td>
<b>Betreff:</b>
</td>
<td><input type="text" name="betreff" style="width:300px" /></td>
</tr>
<tr class="farbig">
<td valign="top" class="farbig">
<b>Text:</b>
</td>
<td>
<textarea name="text" rows="10" style="width:300px"></textarea>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td>
<input name="newsletter_senden" type="submit" value="Newsletter senden" />
</td>
</tr>
</form>
<?php echo "<b>".$status."</b>"; ?>[/code:1]
Das wars auch schon, bei Fragen, Problemen oder Anregungen könnt ihr diese jederzeit hier posten!
Viel Spaß mit dem Skript
Wie schon im Blog versprochen zeige ich euch hier, wie ihr ein komplettes Newsletterscript programmieren könnt:
1. Schritt:
Erstellt eine MySQL-Datenbank und eine Tabelle mit 6 Feldern und führt folgenden MySQL-Befehl aus:
[code:1]CREATE TABLE `newsletter` (
`ID` int(11) NOT NULL auto_increment,
`email` text NOT NULL,
`bestellt` text NOT NULL,
`abbestellt` text NOT NULL,
`ip` text NOT NULL,
`bestaetigt` int(11) NOT NULL default '0',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;[/code:1]
2.Schritt:
Erstellt eine Datei für die MySQL-Verbindung, am besten nach folgender
Anleitung
3. Schritt
Erstellt eine Newsletteroberfläche für eure Besucher:
newsletter.php
[code:1]<?php
include ('connect.php'); // MySQL-Verbindung aufbauen
if(isset($_POST['anmelden']) && !empty($_POST['email']) && eregi('@',$_POST['email'])) // Formulardaten auf korrekte Eingabe überprüfen
{
$email = $_POST['email'];
$text = "Bitte bestätigen Sie Ihre Newsletteranmeldung:\n\nhttp://www.domain.tld/?e=newsletter_bestaetigen&email=".$email; // Dieser Text wird in einer Bestätigunsemail an den Besucher geschickt, hier müssen Sie hier Domain eintragen!
$handle = mysql_query("SELECT email,abbestellt FROM newsletter");
if(mysql_num_rows($handle) > 0)
{
while($row = mysql_fetch_assoc($handle))
{
if(($_POST['email'] == $row['email']) && ($row['abbestellt'] == NULL))
{
$status = "Sie sind bereits Abonennt des Newsletters"; //, weil die Email-Adresse in der Datenbank schon vorhanden ist, aber noch nicht abbestellt wurde
}
else if(($_POST['email'] == $row['email']) && ($row['abbestellt'] != NULL))
{
mysql_query("INSERT INTO newsletter (email,bestellt,ip,bestaetigt) VALUES ('$email','$bestellt','$ip', 'nein')");
mail($email, 'Bestätigung', $text);
$status = "Eine Email wurde an Ihre Adresse geschickt, bitte clicken Sie dort auf den Bestätigungslink!"; //, zwar ist die Email-Adresse schon eingetragen, wurde aber bereits abbestellt, damit ist eine erneute Anmeldung wieder wirksam
}
else
{
$bestellt = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
if(mysql_query("INSERT INTO newsletter (email,bestellt,ip,bestaetigt) VALUES ('$email','$bestellt','$ip', 'nein')"))
{
mail($email, 'Bestätigung', $text);
$status = "Eine Email wurde an Ihre Adresse geschickt, bitte clicken Sie dort auf den Bestätigungslink!";
}
else
{
$status = "Fehler beim Eintragen Ihrer Emailadresse, bitte probieren Sie es später noch einmal.";
}
}
}
}
else
{
$bestellt = date("Y-m-d");
$ip = $_SERVER['REMOTE_ADDR'];
if(mysql_query("INSERT INTO newsletter (email,bestellt,ip,bestaetigt) VALUES ('$email','$bestellt','$ip', 'nein')"))
{
mail($email, 'Bestätigung', $text);
$status = "Eine Email wurde an Ihre Adresse geschickt, bitte clicken Sie dort auf den Bestätigungslink!";
}
else
{
$status = "Fehler beim Eintragen Ihrer Emailadresse, bitte probieren Sie es später noch einmal.";
}
}
}
if(isset($_POST['abmelden']) && !empty($_POST['email'])) // Bedingung für das Abmelden
{
$abbestellt = date("Y-m-d");
$email = $_POST['email'];
if(mysql_query("UPDATE newsletter SET abbestellt = '$abbestellt' WHERE email = '$email'"))
{
$status = "Ihre Emailadresse ".$email." wurde erfolgreich aus unserem Newsletter entfernt.";
}
}
?>
<h3 style="font-size:10pt;font-family:verdana;margin-top:40px;color:#000000;font-style:italic;text-decoration:underline;">Newsletter:</h3>
<br><br>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" name="email" value="Ihre Email-Adresse"><br>
<input type="submit" name="anmelden" value="anmelden"><br>
<input type="submit" name="abmelden" value="abmelden">
</form>
<?php echo $status;?>[/code:1]
4. Schritt:
Ihr benötigt eine Datei, die beim Aufrufen des Bestätigungslinkes für den Besucher erscheint:
newsletter_bestaetigung.php
[code:1]<?php
include_once ('connect.php');
$email = $_GET['email'];
if(mysql_query("UPDATE newsletter SET bestaetigt = 'ja' WHERE email = '$email'"))
{
$status = "Ihre Emailadresse wurde erfolgreich bestätigt.";
}
else
{
$status = "Fehler beim bestätigen Ihrer Email-Adresse";
}
?>
<h3 style="font-size:10pt;font-family:verdana;margin-top:40px;color:#000000;font-style:italic;text-decoration:underline;">Newsletterbestätigung:</h3>
<?php echo $status;?>[/code:1]
Nun seid ihr so weit, dass sich Besucher bei eurem Newsletter anmelden können, jetzt benötigt ihr als Webmaster aber auch noch eine Verwaltung der Adressen, so wie die Möglichkeit einen Newsletter zu verfassen, der sich an die Abonennten verschickt.
5. Schritt
Jetzt wollen wir die Verwaltung für die Abonennten einrichten, die uns auch die Möglichkeit des Löschens eines Abonennten gibt:
newsletter_verwalten.php
[code:1]<?php
if(isset($_POST['abonennt_loeschen']) && isset($_POST['abonennt']))
{
$id = $_POST['abonennt'];
if(mysql_query("DELETE FROM newsletter WHERE ID = '$id'"))
{
$status = "Abonennt wurde erfolgreich aus der Datenbank entfernt.";
}
else
{
$status = "Fehler beim Entfernen des Abonennts.";
}
}
?>
<h3>Newsletter verwalten:</h3>
<br><br>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="POST">
<table style="border:0px solid #ffffff;width:90%;" cellspacing="0" cellpadding="0">
<tr>
<td><b>Emailadresse:</b></td>
<td><b>Bestellt am:</b></td>
<td><b>Abbestellt am:</b></td>
<td><b>IP-Adresse:</b></td>
<td><b>Bestätigt:</b></td>
<td><b>Löschen:</b></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?php
$handle = mysql_query("SELECT ID,email,bestellt,abbestellt,ip,bestaetigt FROM newsletter ORDER BY bestellt");
if(mysql_num_rows($handle) > 0)
{
while($row = mysql_fetch_assoc($handle))
{
$result .= "<tr><td>".$row['email']."</td><td>".$row['bestellt']."</td><td>".$row['abbestellt']."</td><td>".$row['ip']."</td><td>".$row['bestaetigt']."</td><td><input type=\"radio\" name=\"abonennt\" value=\"".$row['ID']."\"/></td></tr>";
}
echo $result;
}
else
{
$status = "Keine Abonennten im Newsletter eingetragen";
}
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td><input type="submit" name="abonennt_loeschen" value="Abonennt entfernen" /></td>
</tr>
</table>
</form>
<br>
<?php echo "<b>".$status."</b>"; ?>[/code:1]
6. Schritt
Zum Schluss noch die Datei, mit der Ihr eure Newsletter verfassen und an die bestätigten Abonennten verschicken könnt:
[code:1]<?php
if(isset($_POST['newsletter_senden']) && !empty($_POST['betreff']) && !empty($_POST['text']))
{
$handle = mysql_query("SELECT email,abbestellt FROM newsletter WHERE bestaetigt = 'ja'");
if(mysql_num_rows($handle) > 0)
{
while($row = mysql_fetch_assoc($handle))
{
if(empty($row['abbestellt']))
{
$header = 'From: Domain.tld';
mail($row['email'], $_POST['betreff'], $_POST['text'], $header);
}
else
{
$status = "Keine Abonennten zum Empfangen des Newsletters eingetragen.";
}
}
if(empty($status))
{
$status = "Newsletter wurde erfolgreich versandt.";
}
}
else
{
$status = "Keine Abonennten zum Empfangen des Newsletters eingetragen.";
}
}
?>
<h3>Newsletter verfassen:</h3>
<br>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="POST">
<table cellspacing="0" cellpadding="2">
<tr>
<td>
<b>Betreff:</b>
</td>
<td><input type="text" name="betreff" style="width:300px" /></td>
</tr>
<tr class="farbig">
<td valign="top" class="farbig">
<b>Text:</b>
</td>
<td>
<textarea name="text" rows="10" style="width:300px"></textarea>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td>
<input name="newsletter_senden" type="submit" value="Newsletter senden" />
</td>
</tr>
</form>
<?php echo "<b>".$status."</b>"; ?>[/code:1]
Das wars auch schon, bei Fragen, Problemen oder Anregungen könnt ihr diese jederzeit hier posten!
Viel Spaß mit dem Skript
Was wir wissen ist ein Tropfen, was wir nicht wissen ein Ozean.
www.bussgeldkataloge.eu - Die Seite für Autofahrer
www.bussgeldkataloge.eu - Die Seite für Autofahrer