PHP Email Kontaktformular

Alles rund um die Software-Entwicklung: Programme, Skripte, Projekte etc.
Antworten
Benutzeravatar
varmandra
Commander
Beiträge: 266
Registriert: 24.09.2008, 20:32

PHP Email Kontaktformular

Ungelesener Beitrag von varmandra » 14.01.2011, 19:35

Ich hab ein Problem und weis nicht warum es nicht mehr funktioniert, ich hab ein Kontakformular und das tat auch beim einrichten seinen Dienst aber seit einiger Zeit geht da was schief.
Eigentlich sollte man wenn man auf senden klickt eine Email ankommen, die die email Adresse als Absender stehen hat die im Formular eingegeben wurde, hat damals (1-2Jahre her) wunderbar funktioniert, jetzt steht dort als Absender der Postmaster von dem Webspace drin wo das Formular ausgeführt wird.

Das Problem müsste eigentlich hier drin sein

Code: Alles auswählen

$nname = "$vorname $name"; //senders nachname
$semail = "$email"; //senders e-mail adress
$to = "name@example.com"; //recipient
$text="Name: ".$vorname." ".$name."\nStrasse: ".$strasse."\nOrt: ".$plz." ".$ort."\nE-Mail-Adresse: ".$email."\nBetreff: ".$anfrage; //mail body
$subject = "$emailselect"; //subject
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: FirmerX <info@firmerx.de>' . "\r\n";
$headers .= "From: ". $nname . " <" . $semail . ">\r\n"; 

mail($to, $subject, $text, $headers); //mail command
Aber ich finde nichts was da falsch laufen sollte, deshalb hab ich hier unten nochmal den gesammten Quelltext angefügt, ich wüsste auch nicht das der Provider in letzter Zeit etwas geupdatet /geändert hat. Ich kann leider auch nicht wirklich genau sagen ab wann der Fehler auftrat, hab das Problem erst seit Januar bemerkt, kann aber nicht wirklich genau sagen ab wann genau, da dieses Formular nur selten benutzt wird, aber funktionieren sollte es dann schon.

BdT
Varmandra

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Therapiezentrum Mandala</title>
<style type="text/css">
body 
{
 background-image:url(http://www.therapiezentrum-mandala.de/content/images/bg.gif);
 background-repeat:repeat-y;
 background-position: left 25;
 background-color:#fcb389;
}
#inhalt { position: absolute; z-index: 8; top : 35px; left : 12px; color: #00000; padding: 0px; border: 0px;}
</style>
</head>
<body alink="#c30e43" link="#c30e43" vlink="#c30e43" text="black">

<div id="inhalt">
<table width="*" border="0" cellspacing="0" cellpadding="0">
	<tr>
		<td>
      <? if($absenden){


$nname = "$vorname $name"; //senders nachname
$semail = "$email"; //senders e-mail adress
$to = "name@example.com"; //recipient
$text="Name: ".$vorname." ".$name."\nStrasse: ".$strasse."\nOrt: ".$plz." ".$ort."\nE-Mail-Adresse: ".$email."\nBetreff: ".$anfrage; //mail body
$subject = "$emailselect"; //subject
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: FirmerX <info@firmerx.de>' . "\r\n";
$headers .= "From: ". $nname . " <" . $semail . ">\r\n"; 

mail($to, $subject, $text, $headers); //mail command
echo "<font color=#000000  size=2 face=Verdana, Arial, Helvetica, sans-serif><strong>Anfrage erfolgreich versandt </strong></font>";
     }
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method=post>
	<table border="0" align="left" cellpadding="1" cellspacing="0">
		<tr> 
			<td><strong>Empf&auml;nger:</strong></td>
			<td>
				<select name="emailselect" class="textfeld">
					<option value="Algemeine Fragen">Allgemeine Fragen</option>
					<option value="Fragen zur 2">Fragen zur 2.</option>
					<option value="Fragen zur 3">Fragen zur 3.</option>
					<option value="Fragen zur 4">Fragen zur 4.</option>
					<option value="Fragen zu 5">Fragen zu 5</option>
				</select>
			</td>
		</tr>
		<tr> 
			<td><strong>Vorame: </strong></td>
			<td><input name="vorname" class="normtext" style="width:233px;"></td>
		</tr>
		<tr> 
			<td><strong>Nachname:</strong></td>
			<td><input name="name" class="normtext" style="width:233px;"></td>
		</tr>
		<tr> 
			<td><strong>E-Mail:</strong></td>
			<td><input name="email" class="normtext" style="width:233px;"></td>
		</tr>
		<tr> 
			<td><strong>Stra&szlig;e:</strong></td>
			<td><input name="strasse" class="normtext" style="width:233px;"></td>
		</tr>
		<tr> 
			<td><strong>PLZ:</strong></td>
			<td><strong><input name="plz" class="normtext" style="width:100px;"> Ort:</strong><input name="ort" class="normtext" style="width:100px;"></td>
		</tr>
		<tr> 
			<td><strong>Anfrage:</strong></td>
			<td><textarea name="anfrage" cols="29" rows="6" class="normtext" id="textarea"></textarea></td>
		</tr>
		<tr> 
			<td></td>
			<td><input name="absenden" type="submit" value="Senden"><input type="reset" name="Reset" value="Zur&uuml;cksetzen"></td>
		</tr>
	</table>
</form>
		</td>
	</tr>
</table>
</div>
</body>
</html>

Benutzeravatar
Epfi
Admiral
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 10520
Registriert: 08.03.2004, 11:02
Wohnort: Haus, das Verrückte macht
Kontaktdaten:

Re: PHP Email Kontaktformular

Ungelesener Beitrag von Epfi » 14.01.2011, 19:47

Es gibt noch PHP-Installationen, bei denen Register Globals an ist?

Haste mal probiert, am Ende der Header-Zeilen jeweils nur ein \n statt dem \r\n einzufügen? Eigentlich sollte der Server das richtig machen, kann aber passieren, dass da Doppelleerzeilen entstehen.

Ansonsten kannste es ja mal mit dem Reply-To: Header-Feld probieren, vielleicht verschafft das ja Linderung.
hartware.net - *** ****** ***, ** ************ **** **** *********** ****.

stanglwirt
Fleet Captain
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 1591
Registriert: 17.03.2004, 07:22

Re: PHP Email Kontaktformular

Ungelesener Beitrag von stanglwirt » 15.01.2011, 11:50

verwende sowas wie phpmailer - das ist dann auch sicher im gegensatz zu deinem script.
MfG
everybody´s darling is everybody´s Arschloch. (c) Franz Josef Strauß

Benutzeravatar
Epfi
Admiral
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 10520
Registriert: 08.03.2004, 11:02
Wohnort: Haus, das Verrückte macht
Kontaktdaten:

Re: PHP Email Kontaktformular

Ungelesener Beitrag von Epfi » 15.01.2011, 12:17

@stangl: mich hat es auch erstmal ein bisschen gegraust... Aber auch nach längerem Nachdenken ist mir nichts eingefallen, wie man das Ding irgendwie gemein ausnutzen könnte...
hartware.net - *** ****** ***, ** ************ **** **** *********** ****.

Benutzeravatar
varmandra
Commander
Beiträge: 266
Registriert: 24.09.2008, 20:32

Re: PHP Email Kontaktformular

Ungelesener Beitrag von varmandra » 15.01.2011, 18:57

Vielen dank, das mit dem reply macht zumindest wieder das was es soll, es wird zwar immer noch der Postmaster als Absender angezeigt aber wenn man auf Antworten klickt steht im Adressfeld die gewünschte Adresse drin.

Werd mir aber auch mal phpmailer genauer ansehen. Ich wüsste jetzt auch nicht wo es da probleme geben sollte, das Skript ist ja etwas wirr, aber ein grobe Sicherheitslücke sehe ich jetzt nicht.

BdT
Varmandra

Benutzeravatar
Viprex
Vice Admiral
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 4590
Registriert: 08.03.2004, 18:33
Wohnort: Hohenlockstedt
Kontaktdaten:

Re: PHP Email Kontaktformular

Ungelesener Beitrag von Viprex » 22.01.2011, 21:57

formmail ist auch ein Blick wert, wie ich finde.
Zuletzt geändert von Viprex am 22.01.2011, 21:58, insgesamt 1-mal geändert.
Nachts essen ist der Hit!
Kommt gleich neben tagsüber essen :)

stanglwirt
Fleet Captain
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 1591
Registriert: 17.03.2004, 07:22

Re: PHP Email Kontaktformular

Ungelesener Beitrag von stanglwirt » 26.01.2011, 11:43

@ epfi

z.b. können die header manipuliert werden, was darin resultieren könnte, emails an jede beliebige adresse über den server zu verschicken (spamschleuder)

http://de.wikipedia.org/wiki/E-Mail-Injektion
Zuletzt geändert von stanglwirt am 26.01.2011, 11:59, insgesamt 1-mal geändert.
MfG
everybody´s darling is everybody´s Arschloch. (c) Franz Josef Strauß

Benutzeravatar
varmandra
Commander
Beiträge: 266
Registriert: 24.09.2008, 20:32

Re: PHP Email Kontaktformular

Ungelesener Beitrag von varmandra » 26.01.2011, 14:15

Das dürfte nicht gehen, da ich wenn ich in dem Header unter To eine Email-Adresse angebe die nicht zu der Domain, wo das Skript ausgeführt, wird keine Email versendet, außer die haben da auch was geändert von dem ich nichts mitbekommen habe.

Aber danke für den hinweis, werde das auf jeden Fall mal austesten.

BdT
Varmandra

Benutzeravatar
Epfi
Admiral
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 10520
Registriert: 08.03.2004, 11:02
Wohnort: Haus, das Verrückte macht
Kontaktdaten:

Re: PHP Email Kontaktformular

Ungelesener Beitrag von Epfi » 26.01.2011, 14:44

@stangl: Stimmt. Hatte das schonmal angeguckt und bin dann zu dem Schluss gekommen, dass es doch nicht geht. Tatsächlich kann der Benutzer aber über $vorname und $nachname im Header rumschreiben, wie er lustig ist...
hartware.net - *** ****** ***, ** ************ **** **** *********** ****.

Antworten