Hallo Leute,
ich hab ein kleines Kontaktformular für meine Hompage und wollte wenn mir die Sachen jetzt per Mail geschickt werden bestimmte Teile fett schreiben. Also die Mail als html senden. Leider krieg ich das egal was ich versuche nicht hin. Hier mal mein Code:
<?
// Wir legen eine Variable mit deiner E-Mail
$ihremail = "E-Mail@gmx.de";
// Lege nun eine leere Variable für Fehler an (wird später benötigt)
$error = "";
// IP-Adresse übertragen
$ip = "".$HTTP_SERVER_VARS["REMOTE_ADDR"];
// Datum und Uhrzeit übertragen
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
// Inhalt aus den Formularen übertragen "Name"
$name = $_POST['name'];
// Inhalt aus den Formularen übertragen "Email"
$email = $_POST['email'];
// Inhalt aus den Formularen übertragen "Betreff"
$betreff = $_POST['betreff'];
// Inhalt aus den Formularen übertragen "Nachricht"
$text = $_POST['text']; // Text
$Submit = $_POST['Submit']; // Sende Button
// Wir bauen eine Funktion die soll die Absender E-Mail überprüfen, ob die gültig ist
// das machen wir mit eregi() wir prüfen nicht nur ob "@" und "." vorhanden ist sondern auch
// 2 bustaben vor "@" und nach dem "@" da sind.
function mailcheck($mail) {
$mail = eregi("^[a-z0-9]+([-_.]?[a-z0-9])
+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $mail); // Hier läuft das ab
return $mail; // wir geben die E-Mail zurück
}
// Jetzt prüfen wir ob die Felder ausgefüllt wurden mit if(empty)
//wenn das feld "Name" nicht ausgefüllt wurde geben wir der leeren $error Inhalt
// Also die Ausgabe "Sie haben keinen Namen angegeben."
if(empty($name)) $error .= "<li>Sie haben keinen Namen angegeben.</li>";
// das gleiche mit "Email"
if(empty($email)) $error .= "<li>Sie haben keine E-Mail angegeben.</li>";
// hier setzen wir unsere oben gebaute Funktion ein wenn E-Mail nicht stimmt dann fehlerausgabe
if(mailcheck($email)) $error .= "<li>Ihre E-Mail ist ungültig</li>";
// für das Feld "Betreff"
if(empty($betreff)) $error .= "<li>Es wurde kein Betreff ausgewählt.</li>";
// für Nachricht
if(empty($text)) $error .= "<li>Sie haben kein Text angegeben.</li>";
// if(empty($error)) d.h wenn $error leer ist also alles normal ausgefüllt wurde und der Button "Absenden" angeklickt wurde
// Dann springt das runter und wir holen uns die übertragene Daten
if(empty($error) && $Submit == "Absenden" ) {
// wir machen das ganze in eine Variable "$nachricht"
$nachricht = "<b>".$uhrzeit."".
"Uhr - ".$datum."</b>\n\n".
"<b>Ip:</b> ".$ip."\n".
"<b>Name:</b> ".$name."\n".
"<b>Email:</b> ".$email."\n".
"<b>Betreff:</b> ".$betreff."\n\n".
"<b>Nachricht:</b> \n".$text;
$subject = "Homepage Kontakt - $betreff";
$header = "FROM: $email";
$header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$header .= "X-Mailer: PHP ". phpversion();
// hier setzen wir unsere mail() funktion ein das muss genau so ausehen
// mail($anwem,$subject,$den den ganzen inhalt, unbedingt "FROM:" also von wem)
mail($ihremail,$subject,$nachricht,$header);
}
// hier fragen wir wieder ein Error ein:
if(empty($error)) {
// wir geben dann hier ein dass alles ok ist
echo "<b>Nachricht wurde erfolgtreich verschickt</b><br>
<ul>
<li>Name: $name</li>
<li>Email: $email</li>
<li>Betreff: $betreff</li>
<li>Nachricht: $text</li>
</ul>";
// Wenn es nicht stimmt
} else {
echo "Folgender Fehler ist aufgetreten<br><p>Ihre Nachricht konnte nicht gesendet werden:<ul>$error</ul></p>";
}
?>
Man sieht ja was nachher fett geschrieben werden soll, nur leider kommt es so bei mir nicht an.
Danke schon mal für eure Hilfe.
Mfg Dog