PHP Kontaktscript

Zhen

Lt. Junior Grade
Registriert
Aug. 2009
Beiträge
299
Hallo Leute,
ich hätte da mal ein kleines Problem. Ich habe ein Kontaktscript für eine HP geschrieben,
aber es funktioniert nicht ganz wie es soll.

Das Problem ist, dass es den HTML Code in der E-Mail z.B. nicht umsetzt. Es zeigt mir auch
nur den Code selber an statt die formatierungen.

Hier mal der Code vom Formular:
HTML:
<table style="border:0px solid;">
						<form method="post" action="scripte/kontakt.php" target="_blank">
						<tr>
							<td>Name</td>
							<td>:</td>
							<td><input type="text" class="text" name="name"><strong>*</strong></td>
						</tr>
						<tr>
							<td>Firma</td>
							<td>:</td>
							<td><input type="text" class="text" name="firma"></td>
						</tr>
						<tr>
							<td>Stra&szlig;e</td>
							<td>:</td>
							<td><input type="text" class="text" name="strasse"></td>
						</tr>
						<tr>
							<td>PLZ, Ort</td>
							<td>:</td>
							<td><input type="text" class="text" name="plz"><strong>*</strong></td>
						</tr>
						<tr>
							<td>Telefon</td>
							<td>:</td>
							<td><input type="text" class="text" name="telefon"></td>
						</tr>
						<tr>
							<td>Fax</td>
							<td>:</td>
							<td><input type="text" class="text" name="fax"></td>
						</tr>
						<tr>
							<td>E-Mail</td>
							<td>:</td>
							<td><input type="text" class="text" name="email"><strong>*</strong></td>
						</tr>
						<tr>
							<td>Betreff</td>
							<td>:</td>
							<td><input type="text" class="text" name="betreff"><strong>*</strong></td>
						</tr>
						<tr>
							<td>Nachricht</td>
							<td>:</td>
							<td><textarea name="nachricht"></textarea>*</td>
						</tr>
						<tr>
							<td><input type="submit" value="Anfrage senden" name="absenden"></td>
							<td></td>
							<td style="text-align: center; font-size: 12px;"><strong>* Pflichtfelder</strong></form></td>
						</tr>
					</table>


Und hier der Code vom Script selber:
PHP:
<?php
	$name = $_POST['name'];
	$firma = $_POST['firma'];
	$strasse = $_POST['strasse'];
	$plz = $_POST['plz'];
	$telefon = $_POST['telefon'];
	$fax = $_POST['fax'];
	$email = $_POST['email'];
	$nachricht = $_POST['nachricht'];
	$betreff = $_POST['betreff'];
	
	$empfanger = "mail@mail.de";
	$absender = "From: $email";
	$message = "<table style='width:600px; border: 0px solid;'>
			<tr>
				<td style='width:200px;'><strong>Name:</strong></td>
				<td>$name</td>
			</tr>
			<tr>
				<td><strong>Firma:</strong></td>
				<td>$firma</td>
			</tr>
			<tr>
				<td><strong>Stra�e:</strong></td>
				<td>$strasse</td>
			</tr>
			<tr>
				<td><strong>PLZ:</strong></td>
				<td>$plz</td>
			</tr>
			<tr>
				<td><strong>Telefon:</strong></td>
				<td>$telefon</td>
			</tr>
			<tr>
				<td><strong>Fax:</strong></td>
				<td>$fax</td>
			</tr>
			<tr>
				<td><strong>E-Mail:</strong></td>
				<td>$email</td>
			</tr>
			<tr>
				<td><strong>Nachricht:</strong></td>
				<td>$nachricht</td>
			</tr>
		    </table>";
	
	
	if(!$name) {
		echo "Bitte geben Sie Ihren Namen ein!";
	} else {
		if(!$plz) {
			echo "Bitte geben Sie den Ort ein!";
		} else {
			if(!$email) {
				echo "Bitte geben Sie Ihre E-Mail-Adresse ein!";
			} else {
				if(!$betreff) {
					echo "Bitte geben Sie einen Betreff ein!";
				} else {
					if(!$nachricht) {
						echo "Bitte geben Sie eine Nachricht ein!";
					} else {
						if(@mail($empfanger, $betreff, $message)) {
							echo "Ihre Nachricht konnte leider nicht versendet werden!";
						} else {
							mail($empfanger, $betreff, $message, $absender);
							echo "Vielen Dank f�r Ihre M�he, die Nachricht wurde erfolgreich versendet!";
						}
					}
				}
			}
		}
	}
?>


Ein weiteres Problem ist, dass mir angezeigt wird, dass die E-Mail nicht versendet wurde obwohl sie ja verschickt wird.

Ich danke schon mal für die Hilfe.
 
Um HTML-Mails zu verschicken, musst du die Header richtig setzen. Schau dir hier Beispiel 4 an: http://php.net/manual/de/function.mail.php

Und warum die Fehlermeldung kommt, ist doch offensichtlich. Die Mail Funktion gibt True zurück, wenn erfolgreich versendet wurde. Du zeigst in diesem Fall aber eine Fehlermeldung an...
 
Nicht dass ich es viel besser könnte, aber erstelle doch erstmal ein korrektes HTML. Also mit den ganzen Headers für Zeichencodierung und weiterem.. Vermutlich kann der parser das deshalb nicht auflösen und liefert deinen code als text aus...
Ich würde mal den Inhalt in einem eigenen html erstellen und das durch den w3c checker durchlaufen lassen.. wenn der es okay findet, dann bist du sicherlich schon einen schritt weiter..

edit: okay, sieh den post oberhalb von mir und vorallem den link an..
 
Ok, echt cool. Hat alles geklappt mit dem Header dann.
Vielen Vielen Dank für die Hilfe.
 

Ähnliche Themen

Zurück
Oben