Pagerankanzeige ohne Googletoolbar TM

Navigation

Paidmails

Geldverdienen

Service

Formel 1 Info

Kontaktformular - Kapitel 4 PHP MySQL Server - Dynamische Seiten

 

EinleitungPHP - Kurs für Einsteiger - 15 Kapitel | Beispiele

Hauptseite | Vorwort | Kapitel: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15

Seite: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8


Die Daten als E-Mail verschicken

In diesem Abschnitt erklären wir nun wie angekündigt, wie Formulardaten per E-Mail verschickt
werden. Für diese Aufgaben müssen wir eigentlich nicht unbedingt PHP bemühen. Wie viele von
uns wissen, können wir auch im HTML-Formular als action mailto: Ziel angeben. Diese Methode
öffnet den E-Mail Client des Surfers mit einer neuen Nachricht, in der unsere E-Mail-Adresse
bereits als Empfänger und die Daten des Formulars in der Nachricht eingetragen sind.

Wir wollen diesen Weg hier aber nicht weiter verfolgen, weil wir erstens ein Lehrgang über PHP
vor uns haben und weil zweitens diese Methode bei vielen Usern nicht besonders beliebt ist,
denn beim Verschicken der E-Mail per Client wird die „echte“, eventuell private E-Mail-Adresse,
automatisch mit übertragen – ein Vertrauensvorschuss, den viele Surfer nicht bereit sind zu leisten.
Mit PHP können wir die Formulardaten direkt per E-Mail verschicken. Der benötigte Befehl trägt den
vielversprechenden Namen mail. Allgemein ausgedrückt lautet der Befehl:

mail(Empfänger, Betreff, Nachricht, Header)

Die einzelnen Argumente des Befehls bedürfen eigentlich keiner großen Erklärung,
aber einige Informationen sind vermutlich hilfreich.

Argument

Bedeutung

Empfänger

E-Mail-Adresse des Empfängers als String. Mehrere E-Mail-Adressen können per Komma getrennt direkt aneinander geschrieben werden.

Betreff

Betreffzeile, die im E-Mail-Client angezeigt werden soll (als String).

Nachricht

Der Text der E-Mail als String. Hier sind die unterschiedlichen Formatierungsmöglichkeiten zu beachten, da die Mail-Formate

(HTML, Text) bieten

Header

In diesem Buch geben wir der Nachricht zusätzliche Informationen mit auf den Weg, z.B. teilen wir dem E-Mail-Client mit Content-Type; text/html mit, dass eine Nachricht im HTML-Format folgt (Content-Type; text/plain steht hingegen für reine txt-Nachrichten). Mit Importance: High aktivieren wir die Kennzeichnung des E-Mail-Clients für wichtige Nachrichten, sofern der verwendete E-Mail-Client diese Eigenschaft unterstützt.

Tabelle 4.1: Die Argumente der Funktion mail

Damit wir die Formulardaten an sich selbst per E-Mail senden können, müssen wir also zunächst die
Nachricht im gewünschten Format „zusammenbauen“, den Header erzeugen und anschließend die Mail
auf den Weg bringen.

Um die Nachricht im HTML-Format zu verschicken, muss das vorhandene Script demnach um folgende Zeilen erweitert werden:

<?php

$message="<html><body>";
$message.="<p>Vorname";
$message.=$vorname;
$message.="<br>Nachname";
$message.=$nachname;
$message.="<br>E-Mail";
$message.=$email;
$message.="<br><b>";
$message.=$rank;
$message.= "</b></p></body></html> ";

?>

Soweit der mit Hilfe von HTML formatierte Text der E-Mail-Nachricht. Jetzt folgt der Header,
der sich auf einen Eintrag beschränkt: dem E-Mail-Client mitzuteilen, dass eine HTML-Mail folgt.
Weitere Angaben können folgen, wobei wir euch empfehlen, jede Angabe mit Hilfe von \n
dem Zeichen für Carriage Return – Zeile für Zeile aufzubauen:

$header´=“\n Content-Type: text/html“;

Nun fehlt noch der Versand der E-Mail. Das ist, so gut vorbereitet, ein einfacher Einzeiler:

mail(" ihreEmail@Adresse.de ", "Eine E-Mail von meiner Webseite", message, $header);

Die Mail soll aber natürlich nur dann verschickt werden, wenn die Felder des Elements auch
ausgefüllt sin. Deswegen bauen wir hier wieder eine entsprechende if-Anweisung ein. Das
Scriptfragment zum Versenden der E-Mail sieht dann folgendermaßen aus:

<?php

If ($vorname AND $nachname AND $email)
{
$message="<html><body>";
$message.="<p>Vorname";
$message.=$vorname;
$message.="<br>Nachname";
$message.=$nachname;
$message.="<br>E-Mail";
$message.=$email;
$message.="<br><b>";
$message.=$rank;
$message.= "</b></p></body></html> ";

$header="\n Content-Type: text/html";

mail( "ihreEmail@Adresse.de" ,"Eine E-Mail von meiner Webseite", message, $header);

}

?>

Listing 4.7: Das Scriptfragment, das die Nachricht im gewünschten Format
"zusammenbaut", den Header erzeugt und anschließend die Mail auf den Weg schickt

bool mail(string to, string betreff, string nachricht [, zusätzlicher header])

Funktion zum Versenden von E-Mails. Die Klammer nimmt Argumente auf, die den Empfänger (to), den Betreff und die Nachricht angeben. Optional ist der Header für zusätzliche Informationen.

Die Funktion mail gibt false zurück, wenn die E-Mail-Adresse des Empfängers nicht existiert und die Mail deswegen nicht übermittelt werden konnte. False wird nur ausgegeben, wenn die Übergabe an das auf dem Server installierte Mailprogramm – in den meisten Fällen

Sendmail -, das sich um den Versand der Mail kümmert, nicht ordnungsgemäß funktionierte.

Die Zeile für den Versand der Mail sieht dann folgendermaßen aus:

<?php

If(mail ( "ihreE-Mail@Adreese.de" , "Eine E-Mail von meiner Webseite", $message, $header ))

{
echo "Ihre Informationen wurden übermittelt";
}
else
{
echo "Die Informationsübermittlung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal.";
}

?>

Wenn wir dem User nach einer fehlgeschlagenen Übermittlung wieder das Formular anzeigen
möchten, müssen wir das Script nochmals um eine Kleinigkeit erweitern. Ergänzen wir den obigen
else-Zweig um eine Zeile, die die Variable $sent löscht:

Unsent($sent);

Das gesamte Script sieht dann folgendermaßen aus ( da das endgültige Script
mittlerweile relativ kompakt ist, finden wir weitere Erläuterungen innerhalb des Scripts in Form
von Kommentaren, also in den Zeilen mit den vorangestellten Schrägstrich //

bzw. <!-– im HTML-Teil):

<html>
<head>
<title>Kontaktformular</title>
</head>
<body>

<?php

//Mit $sent==1 wird getestet, ob das Formular abgeschickt wurde

if ($sent==1)
{
//Ausgeben der eingegebenen Formulardaten
echo "Ihr Vorname ist <br>$vorname <br>";
echo "Ihr Nachname ist <br>$nachname <br>";
echo "Ihre E-Mail-Adresse ist <br>$email <br>";
echo "Ihre Note für unser Spiel ist <br>$rank<p>";

//Testen ob alle Felder ausgefüllt wurden
//und gegebenenfalls Fehlermeldungen ausgeben
//und $sent löschen, damit das Formular erneut angezeigt wird

if (!$vorname) {echo 'bitte geben Sie einen Vornamen ein <br>';unset($sent);}
if (!$nachname) {echo 'bitte geben Sie einen Nachnamen ein <br>';unset($sent);}
if (!$email) {echo 'bitte geben Sie Ihre E-Mail-Adresse ein <p>';unset($sent);}

//Ausgeben der Texte für die unterschiedlichen Bewertungen der Seite

if ($vorname AND $nachname AND $email AND $rank=="keine Angabe")
{echo " <b>Vielen Dank und bis bald</b>";}
if ($vorname AND $nachname AND $email AND $rank=="sehr gut")
{echo "schön, dass Ihnen die Seite gefallen hat";}

if ($vorname AND $nachname AND $email AND $rank=="gut")
{echo "schön, dass Ihnen die Seite gefallen hat";}

if ($vorname AND $nachname AND $email AND $rank=="nicht so gut")
{echo"schade, dass Ihnen die Seite nicht gefallen hat";}

//Testen, ob alle Felder ausgefüllt wurden.

//Wenn ja, die E-Mail vorbereiten und verschicken

if($vorname AND $nachname AND $email)
{
//Den Nachrichtentext der E-Mail für eine HTML-Mail zusammenbauen

$message="<html><body>";
$message.="<p>Vorname: ";
$message.=$vorname;
$message.="<br>Nachname: ";
$message.=$nachname;
$message.="<br>E-Mail: ";
$message.=$email;
$message.="<br><b>";
$message.=$rank;
$message.="</b></p></body></html>";

//Den Header der E-Mail erstellen

$header="\n Content-Type: text/html";

//Die E-Mail versenden.
//Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben,
//andernfalls eine Fehlermeldung

if(mail("ihreE-Mail@Adreese.de" , "Eine E-Mail von meiner Webseite", $message, $header))
{
//Erfolgsmeldung ausgeben
echo "Ihre Informationen wurden übermittelt";
}
else
{
//Fehlermeldung ausgeben
echo "Die Informationsübermittlung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal.";
//$sent löschen, damit das Formular erneut angezeigt wird
unset($sent);
}
} //schließende Klammer für If($vorname AND $nachname AND $email)
} //schließende Klammer für If($sent==1)
//Das Formular anzeigen, wenn $sent nicht existiert.
//Dies ist der Fall, wenn die Seite das erste Mal aufgerufen wird,
//oder wenn $sent oben bei einem Fehler gelöscht wird.

if(!$sent) {

?>

<form action="<?php echo $PHP_SELF; ?>"method=post>
<!--Verstecktes Feld um zu Testen, -->
<!--ob das Formular aufgerufen werden soll oder nicht -->

<input type=hidden name=sent value=1>
Vorname <br>
<input type=Text name="vorname" value="<?php echo $vorname;?>" size=20><br>
Nachname <br>
<input type=Text name="nachname" value="<?php echo $nachname;?>" size=20><br>
E-Mail <br>
<input type=Text name="email" value="<?php echo $email;?>" size=30><p>

<h4>Wie hat Ihnen die Seitel gefallen?</h4><p>

<select size=1 name="rank">
<option value="keine Angabe">keine Angabe</option>
<option value="sehr gut">sehr gut </option>
<option value="gut"> gut </option>
<option value="nicht so gut"> nicht so gut </option>
</select>
<input type=submit name="submit" value="abschicken">
</form>

<?php

} //schließende Klammer für If(!$sent)
//Wichtig: Diese Klammer muss in einem php-Teil stehen

?>

</body></html>

Das komplette Script zum Versenden einer Mail mit eingebauter Fehlermeldung.



Kleiner Hinweis: Wir bieten auch ein Pagrenkservice an. <<Keine Angst anmelden kostet NIX!>>


RANKING CHARTS 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20
   
KW HS MG VD
Live Band | Portal4 Europa | Paidmail-Service | IHR LINK | IHR LINK | IHR LINK   . .

Pagerank dieser Seite: ::: www.sind-sie-bereit.de ::: Pagerank Anzeige ohne Toolbar

Sind Sie Bereit für den Urlaub den Sie sich VERDIENT haben? Portal für Europa oder hier auf unser Urlaubseite!
Informationen über Ungarn finden Sie auf der Seite Ungarn / Balaton.

Informationen über Paidmails finden Sie auch auf den Seiten Kowsky-Web, HS-SUPPORT und Verdient Schon.