PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
PHP Forum
Mathe Nachhilfe
Suchmaschinenoptimierung

Newsletter via MySQL

Zurück zur Übersicht

Du möchtest ein Newsletter an deine Freunde schicken? Willst aber nur etwas einfaches und nichts ausführliches haben? Dann habe ich genau das richtige für dich.

Hier erkläre ich dir den Aufbau eines Newsletters mithilfe von MySQL und logischerweise auch php. :)

Wir brauchen folgende Datein:

eintragen.html
eintragen.php

newsletter.html
newsletter.php

Außerdem brauchen wir eine Tabelle mit 3 Spalten.

id(int)5, unsigned, auto-increment, Primärschlüssel
name(varchar)255,
email(varchar)255,

Dies wäre nun der Aufbau unserer Tabelle "newsletter".

Nun kommen wir weiter zum aufbau des Formulars zum Eintragen an.

eintragen.html
 Code 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<form action="eintragen.php" method="post">

<table align="center" width="400">
   <tr>
      <th width="40%">Dein Name:</th>
      <td width="60%"><input type="text" size="24" name="name" /></td>
   </tr><tr>
      <th>Deine eMail:</th>
      <td><input type="text" size="24" name="email" /></td>
   </tr><tr>
      <th>Eintragen?:</th>
      <td><input type="submit" value="Eintragen" /></td>
   </tr>
</table>

</form>
Dies sollte eigentlich kein Problem sein, solch ein Formular zu erstellen. Nun kommen wir zu eintragen.php

eintragen.php
 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
<?php
$verbindung 
mysql_connect("localhost""Benutzername" "Passwort")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden");

$name $_POST["name"];
$email $_POST["email"];

if(
$name == "" OR $email == "")
    {
    echo 
"Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
    exit;
    }

$result mysql_query("SELECT id FROM newsletter WHERE email LIKE '$email'");
$menge mysql_num_rows($result);

if(
$menge == 0)
    {
    
$eintrag "INSERT INTO newsletter (name, email) VALUES ('$name', '$email')";
    
$eintragen mysql_query($eintrag);

    if(
$eintragen == true)
        { echo 
"Deine eMail-Adresse <b>$email</b> wurde eingetragen."; }
    else
        { echo 
"Es trat ein Fehler beim Speichern deiner eMail-Adresse auf. <a href=\"eintragen.html\">Zur&uuml;ck</a>"; }


    }

else
    {
    echo 
"Deine eMail-Adresse ist schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
    }
?>
Auch hier sollten wir mitlerweise fertig sein. Änderungen kann man sicherlich noch vornehmen, zum Beispiel die Überprüfung, ob die eMail-Adresse exestiert, etc. Dazu schau dir die anderen Codeschnipsel von php-einfach.de an.

Nun kommen wir zum Newsletter, welches nur dem Admin der Seite zur Verfügung stehen sollte.

newsletter.html
 Code 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
<form action="newsletter.php" method="post">

<table align="center" width="400">
   <tr>
      <th width="40%">Dein Name:</th>
      <td width="60%"><input type="text" size="24" name="name" /></td>
   </tr><tr>
      <th>Deine eMail:</th>
      <td><input type="text" size="24" name="email" /></td>
   </tr><tr>
      <th>Betreff:</th>
      <td><input type="text" size="24" name="betreff" /></td>
   </tr><tr valign="top">
      <th>Inhalt:</th>
      <td><textarea id="text" name="nachricht" cols="21" rows="4" wrap="physical"></textarea></td>
   </tr><tr>
      <th>Absenden?:</th>
      <td><input type="submit" value="Newsletter senden" /></td>
   </tr>
</table>

</form>
Nun sind wir fertig mit dem Formular, welches wir auch absenden wollen.

Nun kommen wir zur eigentliche Aufgabe bzw. dem eigentlichen Script. Das was ich dir eben gezeigt habe, ist reines HTML. Nun kommt php.

newsletter.php
 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
<?php

// Verbindung zur Datenbank aufbauen...
$verbindung mysql_connect ("Servername",
"Username""Passwort")
or die (
"keine Verbindung möglich.
 Benutzername oder Passwort sind falsch"
);

mysql_select_db("Datenbankenname")
or die (
"Die Datenbank existiert nicht.");

// Wenn die Verbindung zur Datenbank besteht, dann können wir uns folgendes mal ansehen...


// Abfrage der Datenbank aufbauen...
// Wenn die Verbindung zur Datenbank besteht, dann können wir nun mit der Abfrage anfangen.
// Sollte die Verbindung nicht bestehen, so musst du die Daten für die Verbindung aktualisieren!

echo "Die eMail wurde an folgende eMail-Adresse gesendet:

   <br />
   <br />"
;


// Hier werden die Daten via $_POST an newsletter.php weitergeleitet bzw. empfangen und in eine Variable umgeschrieben.
$name $_POST["name"];
$email $_POST["email"];
$betreff $_POST["betreff"];
$text $_POST["text"];

// Dies ist nun die Abfrage, womit die Datenbank abgefragt wird.
    
$abfrage "SELECT * FROM newsletter";
    
$ergebnis mysql_query($abfrage);
    while(
$ausgabe mysql_fetch_assoc($ergebnis))
        { 
mail($ausgabe['email'], $betreff$text"From: $name  <$email>"); }

?>


So.. das wars ansich auch schon. Mehr ist da nicht. Natürlich kann man dieses jederzeit erweitern, worüber ich mich auch freuen würde. Wenn Fragen hierzu sind, dann stellt sie mir.

Ich habe dieses nicht weiter getestet, sollte aber funktionieren. ;) Wenn nicht, einfach hier schreiben.

Kommentare

Zurück zur Übersicht

Autor Gast

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Entwickler Forum

» insert nach login

» Tabellenzelle zu groß







© PHP-Einfach.de 2003 - 2012