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

Rundmail (Beispiel)

Zurück zur Übersicht

Ein einfaches Newsletter-Script.

Hallo,

hier mal ein kleines Rundmail-Script (eine Art Newsletter, abgewandelt und simple).

Zunächst benötigen wir eine Usertabelle also eine Tabelle wo alle User registriert sind.

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:

CREATE TABLE `iXclusiv`.`rundmail` (
`id` BIGINT( 99 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`anrede` VARCHAR( 4 ) NOT NULL ,
`name` VARCHAR( 60 ) NOT NULL ,
`vorname` VARCHAR( 60 ) NOT NULL ,
`status` INT( 1 ) NOT NULL ,
`emailaddress` VARCHAR( 150 ) NOT NULL
) ENGINE = MYISAM ;


OK, nachdem wir dies erstellt haben können wir schonmal damit anfangen ein Registrierungsformular zu bauen.

index.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:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:

<?php
//Daenbankverbindung
@mysql_connect("Hostname/Ip""username""passwort")OR DIE("Es konnte keine verbindung zu MySQL hergestellt werden!<br />Fehlercode #"mysql_error_num(). "<br />Fehlernachricht"mysql_error()); //Verbindung aufbauen ggf. Fehler mit Fehlernummer und Nachricht ausgeben.
@mysql_delect_db("Datenbank")OR DIE("Konnte Datenbank nicht auswählen.<br />Fehlercode #"mysql_error_num(). "<br />Fehlernachricht"mysql_error()); //Datenbank auswählen ggf. Fehler mit Fehlernummer und Nachricht ausgeben.
//Datenbankverbindung ENDE

//Variablen setzen
$anrede mysql_real_escape_string($_POST['anrede']); //Wir nutzen mysql_real_escape_string(); ansonsten könnte man die Datenbank durch ein DROP oder DELETE löschen, dies wollen wir ja nicht!
$name mysql_real_escape_string($_POST['name']);
$vorname mysql_real_escape_string($_POST['vorname']);
$emailadresse mysql_real_escape_string($_POST['emailadresse']);

//Abfragen ob NICHT gesended wurde:
if (!$_POST)
{
?>
<form method="post" action="">
<p>Anrede:<br /><select name="anrede">
<option value="Herr">Herr</option>
<option value="Frau">Frau</option>
</select></p>
<p>Name:<br /><input type="text" name="name" maxlength="60" /></p>
<p>Vorname:<br /><input type="text" name="Vorname" maxlength="60" /></p>
<p>e-Miladresse:<br /><input type="text" name="e-Mailadresse" maxlength="150" /></p>
<p><center><input type="submit" name="submit" value="Eintragen" /></center></p>
</form>
<?php
}
//Wenn doch gesended wurde
else
{
  if(
$name == "" || $vorname == "" || $emailadresse == "")
  {
//Fehlerbehandlung, wenn gewisse Felder NICHT ausgefüllt worden sind!  
?>
<p>Bitte alles ausfüllen!</p>
<form method="post" action="">
<p>Anrede:<br /><select name="anrede">
<option value="Herr">Herr</option>
<option value="Frau">Frau</option>
</select></p>
<p>Name:<br /><input type="text" name="name" maxlength="60" /></p>
<p>Vorname:<br /><input type="text" name="Vorname" maxlength="60" /></p>
<p>e-Miladresse:<br /><input type="text" name="e-Mailadresse" maxlength="150" /></p>
<p><center><input type="submit" name="submit" value="Eintragen" /></center></p>
</form>
<?php
  
}
  else
  {
//Wenn alle Felder ausgefüllt worden sind, dann tragen wir mal ein!  
@mysql_query("INSERT INTO rundmail (anrede, name, vorname, emailaddress, status) VALUES ('$anrede', '$name', '$vorname', '$emailadresse', '1')")OR DIE("Konnte nicht eintragen.<br />Fehlercode #"mysql_error_num(). "<br />Fehlernachricht"mysql_error()); //Daten eintragen ggf. Fehler mit Fehlernummer und Nachricht ausgeben.;
//Wenn kein Error kommt wurde der user erfolgreich eingetragen. Nun können wir demjenigen auch eine Mail zukommen lassen.
?>
<p>Sie wurden erfolgreich in das Rundmailsystem eingetragen.</p>
<?php
  
}
}
?>


OK, nun benötigen wir nur noch ein schönes Formular um eine e-Mail zu senden. Vorraussetzung ist, dass mail(); auch auf euren servern bzw. WebSpace funktioniert!

senden.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:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:

<?php
//Daenbankverbindung
@mysql_connect("Hostname/Ip""username""passwort")OR DIE("Es konnte keine verbindung zu MySQL hergestellt werden!<br />Fehlercode #"mysql_error_num(). "<br />Fehlernachricht"mysql_error()); //Verbindung aufbauen ggf. Fehler mit Fehlernummer und Nachricht ausgeben.
@mysql_delect_db("Datenbank")OR DIE("Konnte Datenbank nicht auswählen.<br />Fehlercode #"mysql_error_num(). "<br />Fehlernachricht"mysql_error()); //Datenbank auswählen ggf. Fehler mit Fehlernummer und Nachricht ausgeben.
//Datenbankverbindung ENDE

//Variablen setzen
$nachricht mysql_real_escape_string($_POST['nachricht']); //Wir nutzen mysql_real_escape_string(); ansonsten könnte man die Datenbank durch ein DROP oder DELETE löschen, dies wollen wir ja nicht!
$name mysql_real_escape_string($_POST['name']);
$mail mysql_real_escape_string($_POST['mail']);

//Abfragen ob NICHT gesended wurde:
if (!$_POST)
{
?>
<form method="post" action="senden.php">
<p>Name:<br /><input type="text" name="name" maxlength="60" /></p>
<p>e-Mailadresse:<br /><input type="text" name="mail" maxlength="150" /></p>
<p>Nachricht:<br /><textarea name="nachricht" rows="30" cols="15"></textarea></p>
<p><center><input type="submit" name="submit" value="Rundmail senden" /></center></p>
</form>
<?php
}
//Wenn doch gesended wurde
else
{
  if(
$name == "" || $nachricht == "")
  {
//Fehlerbehandlung, wenn gewisse Felder NICHT ausgefüllt worden sind!  
?>
<p>Bitte alles ausfüllen!</p>
<form method="post" action="senden.php">
<p>Name:<br /><input type="text" name="name" maxlength="60" /></p>
<p>e-Mailadresse:<br /><input type="text" name="mail" maxlength="150" /></p>
<p>Nachricht:<br /><textarea name="nachricht" rows="30" cols="15"></textarea></p>
<p><center><input type="submit" name="submit" value="Rundmail senden" /></center></p>
</form>
<?php
  
}
  else
  {
//Wenn alle Felder ausgefüllt worden sind, dann tragen wir mal ein!  
$select = @mysql_query("SELECT * FROM rundmail WHERE status = '1'");
while(
$daten = @mysql_fetch_object($select)) //Bewirkt, dass die daten so lange abgefragt werden bis nichts mehr kommt!
{
$to      $daten->emailaddress;
$subject 'Rundmail';
$message 'Rundmail von'$name ."\r\n\r\n""Hallo $daten->anrede""\r\n" .$nachricht;
$headers 'From:'$mail "\r\n" .
    
'X-Mailer: PHP/' phpversion();

mail($to$subject$message$headers);
}
//Wenn kein Error kommt wurde der user erfolgreich die Rundmail durch while(); an alle gesended!
?>
<p>Rundmail gesended.</p>
<?php
  
}
}
?>


Das währs. VS.

Kommentare

Zurück zur Übersicht

Autor Benny

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