|
|
|
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
|
|
|
|