# Email Bestätigung nach Formulareintrag PHP



## MoMa1412 (28. April 2011)

Hallo zusammen, ich habe das folgende Formular erstellt, um über eine Formular Daten in eine Datenbank zu schreiben.

Nun sollen die eingegebenen Daten auch per email an den sich eintragenen User geschickt werden.

Ich bin nicht ganz sicher wo und welcher entsprechende Code eingefügt werden muss. Vielleicht kann jemand helfen.

Danke im voraus.

MoMa


```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
<title>Rheinhessen-Connection macht Station im Pott</title> 
<link href="twoColLiqLtHdr.css" rel="stylesheet" type="text/css" /><!--[if IE]> 
<style type="text/css"> 
/* FÃ¼gen Sie CSS-Korrekturen fÃ¼r alle IE-Versionen in diesen bedingten Kommentar ein. */ 
.twoColLiqLtHdr #sidebar1 { padding-top: 30px; } 
.twoColLiqLtHdr #mainContent { zoom: 1; padding-top: 15px; } 
/* Mit der obigen proprietÃ¤ren Zoom-Eigenschaft wird IE die Eigenschaft hasLayout zugewiesen, die zur Verhinderung verschiedener Fehler erforderlich ist. */ 
</style> 
<![endif]--> 
<style type="text/css"> 
<!-- 
body { 
background-color: #ffffff; 
} 
#top_2 { 
background-image: url(../images/mitte.jpg); 
background-repeat: no-repeat; 
} 
#menu { 
font-family: Verdana, Geneva, sans-serif; 
font-size: 10px; 
font-weight: bold; 
color: #666; 
padding-top: 80px; 
padding-left: 90px; 
} 
a:link { 
color: #AE0E36; 
text-decoration: underline; 
} 
a:visited { 
text-decoration: underline; 
color: #A81438; 
} 
a:hover { 
text-decoration: none; 
color: #666; 
} 
a:active { 
text-decoration: underline; 
color: #A3193A; 
} 
#bild { 
} 
#wein { 
border-top-width: 1px; 
border-bottom-width: 1px; 
border-top-style: solid; 
border-bottom-style: solid; 
border-top-color: #666; 
border-bottom-color: #666; 
} 
#menu_2 { 
font-family: Verdana, Geneva, sans-serif; 
font-size: 12px; 
color: #AF0E36; 
padding-top: 5px; 
padding-left: 300px; 
font-weight: bold; 
padding-bottom: 5px; 
} 
--> 
</style></head> 

<body class="twoColLiqLtHdr"> 

<div id="container"> 
<?php 
$db_host = "*********"; 
$db_user = "**********"; 
$db_pass = "********"; 
$db_name = "*********"; 

if (isset( $_POST['eintragen'] )) 
{ 
// Maskierende Slashes aus POST entfernen 
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST; 
// Inhalte der Felder aus POST holen 
$firma = $_POST['firma']; 
$anrede = $_POST['anrede']; 
$vorname = $_POST['vorname']; 
$name = $_POST['name']; 
$strasse = $_POST['strasse']; 
$plz = $_POST['plz']; 
$ort = $_POST['ort']; 
$tel = $_POST['tel']; 
$email = $_POST['email']; 
$internet = $_POST['internet']; 
$branche = $_POST['branche']; 
$workshop = $_POST['workshop']; 
/* ************************************************************************************************ */ 
/* *** Hier sollten und MUESSEN die Benutzereingaben geprueft werden um Schadcode abzufangen****** *** */ 
/* ************************************************************************************************ */ 
// Sind alle Eingaben durch die Validierung gekommen werden sie in die DB geschrieben 
// Verbindung oeffnen und Datenbank ausweahlen 
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" ); 
if ($conID) 
{ 
mysql_select_db( $db_name, $conID ); 
} 
// Anfrage zusammenstellen der an die DB geschickt werden soll 
$sql = "INSERT INTO `formular` 
(`firma`,`anrede`, `vorname`, `name`, `strasse`, `plz`, `ort`, `tel`, `email`, `internet`, `branche`, `workshop`) 
VALUES( 
'" .mysql_real_escape_string( $firma ). "', 
'" .mysql_real_escape_string( $anrede ). "', 
'" .mysql_real_escape_string( $vorname ). "', 
'" .mysql_real_escape_string( $name ). "', 
'" .mysql_real_escape_string( $strasse ). "', 
'" .mysql_real_escape_string( $plz ). "', 
'" .mysql_real_escape_string( $ort ). "', 
'" .mysql_real_escape_string( $tel ). "', 
'" .mysql_real_escape_string( $email ). "', 
'" .mysql_real_escape_string( $internet ). "', 
'" .mysql_real_escape_string( $branche ). "', 
'" .mysql_real_escape_string( $workshop ). "' 
)"; 
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle 
mysql_query( $sql ); 
// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde 
if (mysql_affected_rows() == 1) 
{ 
echo "<h3>Ihre Anmeldung wurde entgegengenommen!</h3>"</br><br/> 

// Hier kann weiterer Code stehen der ausgefuehrt werden soll 
// wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken 
// der ueber den neuen Eintrag informiert 
} 
else 
{ 
echo "<h3>Ihre Anmeldung konnte <strong>nicht</strong> entgegengenommen werden! Bitte wenden Sie sich an den Veranstalter</h3>"; 
// Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren 
// wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken 
// damit er sich um den Fehler kuemmern kann, etc pp 
} 
} 
?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular"> 
<table width="490" border="0" align="left" cellspacing="0"> 
<tr> 
<td width="55" align="left" valign="top">Firma:</td> 
<td align="left" valign="top"><input type="text" name="firma" id="firma" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Anrede:</td> 
<td align="left" valign="top"><input type="radio" name="anrede" id="anrede_1" value="Herr" checked="checked" /> 
Herr 
<input type="radio" name="anrede" id="anrede_2" value="Frau" /> 
Frau</td> 
</tr> 
<tr> 
<td align="left" valign="top">Vorname:</td> 
<td align="left" valign="top"><input type="text" name="vorname" id="vorname" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Name:</td> 
<td align="left" valign="top"><input type="text" name="name" id="name" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Strasse:</td> 
<td align="left" valign="top"><input type="text" name="strasse" id="strasse" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">PLZ:</td> 
<td align="left" valign="top"><input type="text" name="plz" id="plz" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Ort: </td> 
<td align="left" valign="top"><input type="text" name="ort" id="ort" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Tel:</td> 
<td align="left" valign="top"><input type="text" name="tel" id="tel" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">EMail:</td> 
<td align="left" valign="top"><input type="text" name="email" id="email" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Internet: </td> 
<td align="left" valign="top"><input type="text" name="internet" id="internet" /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">Branche: </td> 
<td align="left" valign="top"><input type="radio" name="branche" id="branche_1" value="Handel" checked="checked" /> 
Handel 
<input type="radio" name="branche" id="branche_2" value="Importeur" /> 
Importeur 
<input type="radio" name="branche" id="branche_3" value="Grosshandel" /> 
Grosshandel 
<input type="radio" name="branche" id="branche_4" value="Einzelhandel" /> 
Einzelhandel 
<input type="radio" name="branche" id="branche_5" value="LEH" /> 
LEH<br /> 
<br /> 
<input type="radio" name="branche" id="branche_6" value="Presse" /> 
Presse 
<input type="radio" name="branche" id="branche_7" value="Hotel" /> 
Hotel 
<input type="radio" name="branche" id="branche_8" value="Sommelier" /> 
Sommelier 
<input type="radio" name="branche" id="branche_9" value="F&B" /> 
F & B 
<input type="radio" name="branche" id="branche_10" value="Inhaber" /> 
Inhaber 
<input type="radio" name="branche" id="branche_11" value="Sonstige" /> 
Sonstige</td> 
</tr> 
<tr> 
<td align="left" valign="top">&nbsp;</td> 
<td align="left" valign="top"><p><br /> 
</td> 
</tr> 
<tr> 
<td align="left" valign="top">&nbsp;</td> 
<td align="left" valign="top"><p> 
<strong>Anmeldung f&uuml;r den Workshop:</strong><br /> 
</p></td> 
</tr> 
<tr> 
<td align="left" valign="top">&nbsp;</td> 
<td align="left" valign="top"> 
<input type="radio" name="workshop" id="workshop_1" value="14.30 Uhr" /> 
14:30 Uhr 
<input type="radio" name="workshop" id="workshop_2" value="17.30 Uhr" /> 
17:30 Uhr 
<br /> 
</p></td> 
</tr> 
<tr> 
<td align="left" valign="top">&nbsp;</td> 
<td align="left" valign="top"><p> 
<input type="submit" name="eintragen" id="eintragen" value="Abschicken" /> 
</p></td> 
</tr> 
</table> 
</form> 

<!-- end #container --></div> 
</body> 
</html>
```


----------



## Maniac (28. April 2011)

Das steht doch schon in deinem Code:


> // Hier kann weiterer Code stehen der ausgefuehrt werden soll
> // wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken
> // der ueber den neuen Eintrag informiert


Hier eben eine Email verschicken als Bestätigung.


----------



## MoMa1412 (28. April 2011)

Danke für die schnelle Antwort. Dort habe ich einen mail() -Befehl eingesetzt, aber das hat nicht funktioniert. Ich habe aber in der Zwischenzweit ein wenig rumprobiert und den mail()-Befehl einfach in Zeile 124 eingebaut. Das funktioniert!

Der Code wäre dort:

```
mail($email, "Betreff", "Sie haben folgende Daten eingegeben: Firma: $firma etc");
```

Nur der Absender ist jetzt CGI-Mailer (was jetzt nicht so ein Riesenproblem ist). Aber vielleicht weißt Du ja, wie ich den Absender verändern kann?

Grüße

MoMa


----------



## Maniac (28. April 2011)

Wird dieser Text angezeigt wenn das Formular abgesendet wurde?


> Ihre Anmeldung wurde entgegengenommen!



Wenn ja, dann wird auch die Mail versendet an der Stelle wo ich geschrieben habe.
In Zeile 124 ist es falsch, denn dort wird die Mail auch versendet wenn der Eintrag nicht erfolgreich war.


----------



## MoMa1412 (28. April 2011)

Ich weiß. Aber wenn ich das da unten hinpacke, dann bekomme ich ein Fehlermeldung bzgl der Zeile, in der der else-Befehl steckt. Habe ich irgendwelche Anführungszeichen oder Kommata übersehen?

Hier nochmal der Code-Schnipsel:


```
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle 
mysql_query( $sql ); 
mail($email, "Anuga2011", "Sie haben folgende Daten eingegeben: 
Firma: $firma 
Email: $email", 
$additional_headers = "From: Sommelier-Consult" , $additional_parameters = null); 
// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde 
if (mysql_affected_rows() == 1) 
{ 
echo "<h3>Ihre Anmeldung wurde entgegengenommen!</h3></br><br/> 
Sie haben folgende Daten eingegeben: 
Firma: ".$_POST['firma']. ""; 

// Hier kann weiterer Code stehen der ausgefuehrt werden soll 
// wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken 
// der ueber den neuen Eintrag informiert 
} 
else 
{ 
echo "<h3>Ihre Anmeldung konnte <strong>nicht</strong> entgegengenommen werden! Bitte wenden Sie sich an den Veranstalter</h3>"; 
// Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren 
// wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken 
// damit er sich um den Fehler kuemmern kann, etc pp 
} 
} 
?>
```

Im Übrigen - find ich super, dass Du Dich des Themas ein bißchen annimmst.

Liebe Grüße

MoMa


----------



## Maniac (28. April 2011)

Definiere die Variablen vorher und übergib sie der Mailfunktion:

```
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle 
mysql_query( $sql ); 

// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde 
if (mysql_affected_rows() == 1) 
{ 
echo "<h3>Ihre Anmeldung wurde entgegengenommen!</h3></br><br/> 
Sie haben folgende Daten eingegeben: 
Firma: ".$_POST['firma']. ""; 

// Hier kann weiterer Code stehen der ausgefuehrt werden soll 
// wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken 
// der ueber den neuen Eintrag informiert 
$from = "absender@domain.tld";
$empf = htmlspecialchars($email);
$subject = 'Anuga2011';
$text = "Sie haben folgende Daten eingegeben:\r\n";
$text .= "Firma: ".$firma."\r\n";
$text .= "Email: ".$empf."\r\n";

mail($empf, $subject, $text, "From: " .$from); 
} 
else 
{ 
echo "<h3>Ihre Anmeldung konnte <strong>nicht</strong> entgegengenommen werden! Bitte wenden Sie sich an den Veranstalter</h3>"; 
// Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren 
// wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken 
// damit er sich um den Fehler kuemmern kann, etc pp 
} 
} 
?>
```


----------



## MoMa1412 (28. April 2011)

Klint gut. Aber irgendwasist faul. Ich bekommen beim Aufrufen der Seite folgende Fehlermeldung:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /homepages/2/d132775660/htdocs/anuga/anmeldung1.php on line 142

142 ist die Zeile , wo $from anfängt. Es muss nur eine Kleinigkeit sein, aber was?

Grüße

MoMa


----------



## Maniac (28. April 2011)

Na ein bissl solltest schon auch selbst schauen was nicht sein kann.
Nicht nur Copy und Paste....

hab unter noch 2 Zeilen vergessen zu löschen unter der Ausgabe

```
if (mysql_affected_rows() == 1) 
{ 
echo "<h3>Ihre Anmeldung wurde entgegengenommen!</h3></br><br/>";
```


----------



## MoMa1412 (28. April 2011)

Die hab ich auch rausgenommen, aber trotzdem geht's nicht. Ich weiß, ich treib Dich e bestimmt schon in den Wahsinn (und mach Deinem Namen alle Ehre). Eigentlich ist alles logisch aber irgendwie stehe ich auf dem Schlauch. Hier nochmal der letzte Stand:


```
// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
     if (mysql_affected_rows() == 1)
     {
         echo "<h3>Ihre Anmeldung wurde entgegengenommen!</h3></br><br/>";
		

         // Hier kann weiterer Code stehen der ausgefuehrt werden soll
         // wenn ein Eintrag erfolgreich war. z.B. Email an den Admin 
schicken
         // der ueber den neuen Eintrag informiert
     	$from = "absender@domain.tld";
		$empf = htmlspecialchars($email);
		$subject = 'Anuga2011';
		$text = "Sie haben folgende Daten eingegeben:\r\n";
		$text .= "Firma: ".$firma."\r\n";
		$text .= "Email: ".$empf."\r\n";

		mail($empf, $subject, $text, "From: " .$from);

     }

	
	
	else
     {
         echo "<h3>Ihre Anmeldung konnte <strong>nicht</strong> 
entgegengenommen werden! Bitte wenden Sie sich an den 
Veranstalter</h3>";
         // Hier koennen Massnahmen ergriffen werden die ueber den 
Misserfolg informieren
         // wie z.B. den Benutzer darueber zu informieren, dem Admin 
eine Mail schicken
         // damit er sich um den Fehler kuemmern kann, etc pp
     }
	
	
}
?>
```

Vielleicht kannSt Du nochmal ein letztes Mal drüberschauen. 

Danke im voraus.

MoMa


----------



## Maniac (28. April 2011)

Also mein letzter Stand sieht anders aus!

```
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle 
mysql_query( $sql ); 

// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde 
if (mysql_affected_rows() == 1) 
{ 
echo "<h3>Ihre Anmeldung wurde entgegengenommen!</h3></br><br/>"; 

// Hier kann weiterer Code stehen der ausgefuehrt werden soll 
// wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken 
// der ueber den neuen Eintrag informiert 
$from = "absender@domain.tld";
$empf = htmlspecialchars($email);
$subject = 'Anuga2011';
$text = "Sie haben folgende Daten eingegeben:\r\n";
$text .= "Firma: ".$firma."\r\n";
$text .= "Email: ".$empf."\r\n";

mail($empf, $subject, $text, "From: " .$from); 
} 
else 
{ 
echo "<h3>Ihre Anmeldung konnte <strong>nicht</strong> entgegengenommen werden! Bitte wenden Sie sich an den Veranstalter</h3>"; 
// Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren 
// wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken 
// damit er sich um den Fehler kuemmern kann, etc pp 
} 
} 
?>
```


----------



## MoMa1412 (28. April 2011)

Jetzt klappts. Du bist mein Held******

Vielen Dank undbis nächstes Mal.

MoMa


----------



## Maniac (28. April 2011)

Dazu sei aber noch zu erwähnen das du die Benutzereingaben bevor du sie der Funktion übergibst noch gefiltert werden sollten. Sonst kann dein Formular leicht für Spam missbraucht werden.


----------

