[GELÖST] Kontaktformular funktioniert nicht?

Alt 03.03.2010, 19:02   # 1
seitzo
 
Registriert seit: 02.03.2010
Beiträge: 15
Mein Kontaktformular verschickt keine Mails.

Hier ist mein Code:

Code:
<?php

define("EMPFAENGER","korrekte@email.adresse");
define("BETREFF","Web-Kontakt von URL");
define("ABSENDER","korrekte@email.adresse");

if ($_POST["send"]) {
	$name = $_POST["name"];
	$email = $_POST["email"];
	$nachricht = $_POST["nachricht"];
	$ok = true;
	
	if (empty($name)) {
		$nameerror = "Bitte geben Sie einen Namen an.";
		$ok = false;
	}
	if (empty($email)) {
		$emailerror = "Bitte geben Sie eine Email-Adresse an.";
		$ok = false;
	}
	if (empty($nachricht)) {
		$nachrichterror = "Bitte geben Sie eine Nachricht ein.";
		$ok = false;
	}
	
	if ($ok) {
		mail (EMPFAENGER,BETREFF,$nachricht,"From: ".ABSENDER."\nReply-To: $email");
		$erfolg = "<p class=\"success\">Danke für Ihre Nachricht</p>";
	}
	
}

?>

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
	<title>Kontakt mit Informationstechniker-Meister Name</title>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
	<!--UTF-8 ist ein  moderner Zeichensatz mit dem fast alle Zeichen (wie ä,ö,ü etc) dargestellt werden können-->
	<link rel="stylesheet" type="text/css" media="screen" href="styles.css"/>
	<meta name="Author" content="Name" />
	<meta name="description" content="Die Website von Informationstechnikermeister Thomas Seitz, Elektronikprojekte" />
	<link rel="shortcut icon" type="image/x-icon" href="http://www.netzwelt.de/forum/images/favicon.png"/>
</head>
<body>
<div id="main-container">
	<div id="branding">
		<p id="contact-top">Tel. +49-7966-80 06 64<br/>Oder kontaktieren <br/>Sie mich mittels <br/><a href="kontakt.php">Kontaktformular</a></p>
		<img src="http://www.netzwelt.de/forum/images/branding.png" alt="Name - Informationstechniker-Meister"/>
	</div>
	<div id="navigation">
		<ul>
			<?php include('inc_navi.php') ?>
		</ul>
	</div>
	<div id="teaserbild">
		<img src="http://www.netzwelt.de/forum/images/teaserbild.jpg" alt="Bild: Elektronikplatine" title="Teaserbild"/>
	</div>
	<div id="inhalt">
		<div id="inhalt-haupt">
			<h1>Kontaktieren Sie mich</h1>
			<?php if ($erfolg) { print $erfolg;}?>
			
			<form action="kontakt.php" method="post">
				<table>
					<tr <?php if ($nameerror) { print "class=\"error\"";}?> >
						<th>Ihr Name:</th>
						<td><?php if ($nameerror) { print $nameerror."<br/>";}?><input type="text" name="name"/></td>
					</tr>
					<tr <?php if ($emailerror) { print "class=\"error\"";}?> >
						<th>Ihre E-mail:</th>
						<td><?php if ($emailerror) { print $emailerror."<br/>";}?><input type="text" name="email"/></td>
					</tr>
					<tr <?php if ($nachrichterror) { print "class=\"error\"";}?> >
						<th>Ihre Nachricht:</th>
						<td><?php if ($nachrichterror) { print $nachrichterror."<br/>";}?><textarea name="nachricht" rows="10" cols="30"></textarea></td>
					</tr>
					<tr>
						<th>Daten korrekt?</th>
						<td><input name="send" type="submit" value="Nachricht senden"/></td>
					</tr>
				</table>
			</form>
		</div>
		<div id="inhalt-sub">
			<h2>Adresse und Kontaktdaten</h2>
			<address>Name<br/>Straße<br/>PLZ / Ort</address>
		</div>
	</div>
	<div id="fusszeile">
		<p>Copyright &copy; 2010 Name</p>
	</div>
</div>
</body>
</html>
  Mit Zitat antworten
Alt 04.03.2010, 06:54   # 2
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Es wird die Erfolgsmeldung aber angezeigt?

Schon mal mit "\r\n" probiert statt "\n" im Header? Oder erst mal testen mit einfacherem Header (nur eine "From"-Zeile, ohne "Reply-To" und Zeilenumbruch)?

Grüße,
Thorsten

PS: Ach ja Du solltest folgenden Beitrag zu Header Injection in der PHP-Doku vielleicht beachten...
  Mit Zitat antworten
Alt 04.03.2010, 13:29   # 3
seitzo
Threadstarter
 
Registriert seit: 02.03.2010
Beiträge: 15
Soll das dann so aussehen?

Code:
if ($ok) {
		mail (EMPFAENGER,BETREFF,$nachricht,"From: ".ABSENDER."");
		$erfolg = "<p class=\"success\">Danke für Ihre Nachricht</p>";
	}
Das mit der Injection hab ich leider nicht verstanden.
Ich bin in PHP leider nicht so fit

Ich hab mal ne Grundlegende Frage zur mail-Funktion in PHP.
Muss man auf seinem Server (bei mir is ne NAS) einen Mailserver drauf haben? oder wie soll das funktionieren? Brauch man da sowas wie einen SMTP Server , wenn ja da muss man dann doch seine Login-Daten eingeben oder?
  Mit Zitat antworten
Alt 04.03.2010, 14:00   # 4
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von seitzo Beitrag anzeigen
Soll das dann so aussehen?
Code:
if ($ok) {
	mail (EMPFAENGER,BETREFF,$nachricht,"From: ".ABSENDER."");
	$erfolg = "<p class=\"success\">Danke für Ihre Nachricht</p>";
}
Es ist ja nur als Test gedacht, also: Ja. Das letzte ."" wäre noch überflüssig, egal...
Zitat:
Zitat von seitzo Beitrag anzeigen
Ich hab mal ne Grundlegende Frage zur mail-Funktion in PHP.
Muss man auf seinem Server (bei mir is ne NAS) einen Mailserver drauf haben? oder wie soll das funktionieren? Brauch man da sowas wie einen SMTP Server , wenn ja da muss man dann doch seine Login-Daten eingeben oder?
Ähm, natürlich brauchst Du einen Mail-Server. Ich war davon ausgegangen, dass die Seite auf dem Server Deiner Domain, also scheinbar bei freenet läuft. (Ja, hatte ich extra nachgeguckt...)

Was ist denn der Plan? Ist der NAS nur zum Test?
  Mit Zitat antworten
Alt 04.03.2010, 14:19   # 5
seitzo
Threadstarter
 
Registriert seit: 02.03.2010
Beiträge: 15
Ich hab nur bei freenet meine Domain gekauft. Die Seite läuft auf meiner NAS TS-109 von QNAP. Ich hab bei der NAS auch die Möglichkeit einen SMTP-Server zu konfigurieren.
Hier ist mal meine Seite: Informationstechniker-Meister Thomas K. Seitz

Wie kann ich testen ob der Mail-Server funktioniert?
  Mit Zitat antworten
Alt 04.03.2010, 16:50   # 6
seitzo
Threadstarter
 
Registriert seit: 02.03.2010
Beiträge: 15
Danke für die Hilfe.
Es hat sich alles geklärt.
Beim Benutzernamen zum smtp-Server musste noch ein @freenet.de ran
tia so kanns gehn.
  Mit Zitat antworten
Alt 21.11.2010, 21:14   # 7
ticketnews
 
Registriert seit: 21.11.2010
Beiträge: 2
lol, ich hatte den gleichen fehler mal gemacht
  Mit Zitat antworten

Alt 28.05.2012, 21:14 # --
News Flash
 
Benutzerbild von News Flash
 
 
 

Das könnte Dich auch noch interessieren:

Nicht fündig geworden? Dann ohne Anmeldung in unserem Gast-Forum nachfragen.

   
Antwort
Themen-Optionen



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:14 Uhr.