<?php
session_start();
//Vor session_start(); darf N I C H T S stehen
// Adresse, an die die Formulardaten gesendet werden sollen:
$mailto = "antoniodacosta@gmx.de";
// Hier eine Emailadresse eingeben, die der Anfragende als Absende-Emailadresse sehen soll:
$absender = "antoniodacosta@gmx.de";
$absendername = "GTM-Dienstleistungen UG";
//# Maximale Größe des Attachments in Bytes:
$max_attach_size = 1000000;
if($_REQUEST['Send']){ // Formular abgesendet
// Session-Variablen mit Formular-Werten erstellen
$_SESSION["Telefon"]=$_REQUEST["Telefon"];
$_SESSION["Name"]=$_REQUEST["Name"];
$_SESSION["Firma"]=$_REQUEST["Firma"];
$_SESSION["Strasse"]=$_REQUEST["Strasse"];
$_SESSION["Ort"]=$_REQUEST["Ort"];
$_SESSION["Nachricht"]=$_REQUEST["Nachricht"];
$_SESSION["Email"]=$_REQUEST["Email"];
$_SESSION["Kontakt"]=$_REQUEST["Kontakt"];
$_SESSION["Anrede"] = $_REQUEST["Anrede"];
// Allgemeine Variablen
$email = $_REQUEST["Email"];
$Anrede = $_REQUEST["Anrede"];
$firma = $_REQUEST['Firma'];
$name = $_REQUEST["Name"];
$nachricht = $_REQUEST["Nachricht"];
$strasse = $_REQUEST["Strasse"];
$Ort = $_REQUEST["Ort"];
$festnetz = $_REQUEST["Telefon"];
$kontakt =implode(', ', $_REQUEST['Kontakt']);
// Überprüfungen der Daten:
if (empty($_REQUEST['Name']) or empty($_REQUEST['Email']) or empty($_REQUEST['Telefon'])) { // leere Felder prüfen
echo "<strong>Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle markierten Felder aus!</strong>";
} else if (!isValidEmail($_REQUEST['Email'])) { // ungültige Mailadresse
echo "<strong>Ihre Email-Adresse ist ungültig.<br> Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und tragen eine gültige Email-Adresse ein.</strong>";
} else if (!preg_match('[^[0-9\+\/\(\) \-]{5,30}$]',$_REQUEST['Telefon'])) { // Telefonnummer nicht im Format 999-999-9999 oder 1-999-999-9999
echo "<strong> Ihre Telefonnummer hat kein gültiges Format.<br> Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und tragen eine gültige Telefonnummer ein.</strong>";
} else if ((intval($_REQUEST["Code"]) != intval($_SESSION["ergebnis"])) or ($_SESSION["ergebnis"] == 0)) { // Ergebnis der Rechenaufgabe falsch
echo "<strong>Die Rechenaufgabe ist nicht Richtig gelöst.<br> Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und tragen sie bitte eine die korrekte Lösug ein.</strong>";
} else if( // Checkbox überprüfen
empty($_REQUEST['Kontakt'])){
echo "<strong> Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und geben uns den Kontaktgrund an, <br>damit Ihre Anfrage an die richtige Abteilung weitergeleitet werden kann!</strong>";
}
$subject = stripslashes($subject);
if ($subject != "") $mail_subject = $subject; else $mail_subject = $kontakt;
$ip = $_SERVER["REMOTE_ADDR"];
// Wenn Attachment, dann MIME-Mail erstellen:
if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "")
{
// Datei einlesen und codieren:
$datei_content = fread(fopen($_FILES['probe']['tmp_name'],"r"),filesize($_FILES['probe']['tmp_name']));
$datei_content = chunk_split(base64_encode($datei_content),76,"\n");
// Boundary festlegen:
$boundary = md5(uniqid(rand()));
// Mail-Header:
$mail_header = "From: ".$name." <".$email.">\n";
$mail_header .= "X-Sender-IP: ".$ip."\n";
$mail_header .= "MIME-Version: 1.0\n";
$mail_header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$mail_header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
$mail_header .= "--".$boundary;
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\nFolgenden Daten wurden übermittelt:\n\n";
$mail_header .= "\n\nAnrede: " .$Anrede;
$mail_header .= "\n\nName: " .$name;
$mail_header .= "\n\nFirma: " .$firma;
$mail_header .= "\n\nStraße: " .$strasse;
$mail_header .= "\n\nPLZ / Ort: " .$ort;
$mail_header .= "\n\nTelefon: " .$festnetz;
$mail_header .= "\n\nE-Mail: " .$email;
$mail_header .= "\n\nKontakt bezüglich: " .$kontakt;
$mail_header .= "\n\nIhre Nachricht: ".$nachricht;
// Attachment:
$mail_header .= "\n--".$boundary;
$mail_header .= "\nContent-Type: ".$_FILES['probe']['type']."; name=\"".$_FILES['probe']['name']."\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['probe']['name']."\"";
$mail_header .= "\n\n".$datei_content;
// Ende:
$mail_header .= "\n--".$boundary."--";
// Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
if (@mail($mailto,$mail_subject,"",$mail_header)) $sent = true; else $errors[] = "keine Verbindung zum Mailserver - bitte nochmal versuchen";
}
// kein Attachment, normale E-Mail:
else
{
// Mail-Header:
$mail_header = "From: ".$name." <".$email.">\n";
$mail_header .= "X-Sender-IP: ".$ip."\n";
$mail_header .= "MIME-Version: 1.0\n";
$mail_header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$mail_header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
$mail_header .= "--".$boundary;
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\nFolgenden Daten wurden übermittelt:\n\n";
$mail_header .= "\n\nAnrede: " .$Anrede;
$mail_header .= "\n\nName: " .$name;
$mail_header .= "\n\nFirma: " .$firma;
$mail_header .= "\n\nStraße: " .$strasse;
$mail_header .= "\n\nPLZ / Ort: " .$ort;
$mail_header .= "\n\nTelefon: " .$festnetz;
$mail_header .= "\n\nE-Mail: " .$email;
$mail_header .= "\n\nKontakt bezüglich: " .$kontakt;
$mail_header .= "\n\nIhre Nachricht: ".$nachricht;
// Kein Attachment
if (@mail($mailto,$text,$mail_subject,$mail_header)) $sent = true; else $errors[] = "keine Verbindung zum Mailserver - bitte nochmal versuchen";
}
// Kopie an Absender:
if (isset($sent) && isset($email) && $email != "" && isset($_REQUEST['copy']))
{
if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "") $copy_mail_text ="Bitte überprüfen sie die übermittelten Daten auf Ihre Richtigkeit.\n\nSollte etwas nicht stimmen, Antworten sie bitte mit dem Inhalt dieser eMail.\n\nIhre Email wird in der Regel innerhalb der nächsten 24 Stunden beantwortet.\n\nIhr GTM Team\n\n".$text."\n\nAttachment: ".$_FILES['probe']['name'];else $copy_mail_text ="Bitte überprüfen sie die übermittelten Daten auf Ihre Richtigkeit.\n\nSollte etwas nicht stimmen, Antworten sie bitte mit dem Inhalt dieser eMail.\n\nIhre Email wird in der Regel innerhalb der nächsten 24 Stunden beantwortet.\n\nIhr GTM Team\n\n".$text;
// Mail-Header:
$header = "From: ".$absendername." <".$absender.">\n";
$header .= "X-Sender-IP: ".$ip."\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
$header .= "--".$boundary;
$header .= "\n\nFolgende Email haben wir von Ihnen erhalten:";
$header .= "\n\nAnrede: " .$Anrede;
$header .= "\n\nName: " .$name;
$header .= "\n\nFirma: " .$firma;
$header .= "\n\nStraße: " .$strasse;
$header .= "\n\nPLZ / Ort: " .$ort;
$header .= "\n\nTelefon: " .$festnetz;
$header .= "\n\nE-Mail: " .$email;
$header .= "\n\nKontakt bezüglich: " .$kontakt;
$header .= "\n\nIhre Nachricht: ".$nachricht;
// Kein Attachment
@mail($email,$mail_subject,$copy_mail_text, $header);
echo "<strong>Vielen Dank für Ihre eMail!<br> In der Regel beantworten wir ihre Anfrage innerhalb der nächsten 24 Stunden. <br>Ihr GTM Team</strong><br><img src=\"image/Logo_GTM.png\" alt=\"Logo\">";
}
}
else { // Formular darstellen
// Rechenaufgabe erstellen und Ergebnis in $_SESSION["ergebnis" speichern
$zhl1 = rand(0,10);
$zhl2 = rand(0,10);
$aufgabe = rand(0,2);
if($aufgabe == 0) {
$text = $zhl1." + ".$zhl2;
$erg = $zhl1 + $zhl2;
}
if($aufgabe == 1) {
if ($zhl1 < $zhl2) { // Ergebnis wird negativ: Zahlen tauschen
list($zhl1, $zhl2) = array($zhl2, $zhl1);
} else if ($zhl1 == $zhl2) { // Zahl 1 und Zahl 2 identisch, Zahl 1 etwas erhöhen, damit Ergebnis nicht 0 ist
$zhl1+=rand(1,5);
}
$text = $zhl1." - ".$zhl2;
$erg = $zhl1 - $zhl2;
}
if($aufgabe == 2) {
$text = $zhl1." x ".$zhl2;
$erg = $zhl1 * $zhl2;
}
$_SESSION['ergebnis'] = $erg;
// HTML-Formular darstellen
?>
<script type="text/javascript">
function formLeeren(oForm){
var frm_elements = oForm.elements;
for (i = 0; i < frm_elements.length; i++)
{
field_type = frm_elements[i].type.toLowerCase();
switch (field_type)
{
case "text":
frm_elements[i].value = "";
case "textarea":
frm_elements[i].value = "";
case "checkbox":
if (frm_elements[i].checked)
{
frm_elements[i].checked = false;
}
case "radio":
if (frm_elements[i].checked)
{
frm_elements[i].checked = false;
}
break;
default:
break;
}
}
}
</script>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" cellpadding="1" cellspacing="2">
<h1>Kontaktformular</h1>
<p><small>Bitte füllen Sie alle mit * markierten Felder aus. (Pflichtfelder)</small></p>
<tr>
<td align="left" valign="top">Anrede:</td>
<td>
<input type="radio" name="Anrede" value="Herr" <?php if (isset($_SESSION["Anrede"]) and $_SESSION["Anrede"] == "Herr") echo 'checked="checked"';?>> Herr
<input type="radio" name="Anrede" value="Frau" <?php if (isset($_SESSION["Anrede"]) and $_SESSION["Anrede"] == "Frau") echo 'checked="checked"';?>> Frau
</td>
</tr>
<tr>
<td>Ihr Name*:</td>
<td><input name="Name" size="40" type="text" value="<?=$_SESSION["Name"]?>"></td>
</tr>
<tr><td><small>Vor- und Nachname</small></td></tr>
<tr>
<td>Firma:</td>
<td><input name="Firma" size="40" type="text" value="<?=$_SESSION["Firma"]?>"></td>
</tr>
<tr>
<td>Strasse:</td>
<td><input name="Strasse" size="40" type="text" value="<?=$_SESSION["Strasse"]?>"></td>
</tr>
<tr>
<td>PLZ / Ort:</td>
<td><input name="Ort" size="40" type="text" value="<?=$_SESSION["Ort"]?>"></td>
</tr>
<tr>
<td>Telefon*:</td><br>
<td><input name="Telefon" size="40" type="text" value="<?=$_SESSION["Telefon"]?>"></td>
</tr>
<tr>
<td>Ihre eMail-Adresse*:</td>
<td><input name="Email" id="email" size="40" type="text" value="<?=$_SESSION["Email"]?>"></td>
</tr>
<tr><td align="left" valign="top">Ihre Kontaktanfrage*:<br> <small>Mehrfachauswahl möglich</small></td>
<td>
<input type="checkbox" class="Check" name="Kontakt[]" value="Sommerreifen" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'Sommerreifen'); ?>>Sommerreifen<br>
<input type="checkbox" class="Check" name="Kontakt[]" value="Winterreifen" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'Winterreifen'); ?>> Winterreifen<br>
<input type="checkbox" class="Check" name="Kontakt[]" value="Allwetterreifen" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'Allwetterreifen'); ?>> Allwetterreifen<br>
<input type="checkbox" class="Check" name="Kontakt[]" value="Alufelgen" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'Alufelgen'); ?>> Alufelgen<br>
<input type="checkbox" class="Check" name="Kontakt[]" value="Stahlfelgen" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'Stahlfelgen'); ?>> Stahlfelgen<br>
<input type="checkbox" class="Check" name="Kontakt[]" value="Komplettrad" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'Komplettrad'); ?>> Komplettrad<br>
<input type="checkbox" class="Check" name="Kontakt[]" value="sonstiges" <?php echoCheckedFromArray($_SESSION['Kontakt'], 'sonstiges'); ?>> sonstiges
</td>
<tr>
<td>Ihre Nachricht:</td>
<td><textarea cols="30" name="Nachricht" rows="5"><?=$_SESSION["Nachricht"]?></textarea></td>
</tr>
<tr>
<td>Datei-Anhang:</td>
<td colspan="3"><input type="file" name="probe" value="<?php if (isset($_POST['probe'])) echo htmlentities(stripslashes($_POST['probe'])); else echo ""; ?>" size="17"/></td>
</tr>
<td colspan="3"><input type="checkbox" name="copy" value="true" style="width: 10px;" />
Kopie an Absender</td>
</tr>
<tr>
<td><strong> Die Rechenaufgabe dient zum Schutz gegen Spamnachrichten! </strong></td></tr>
<tr>
<td>Bitte lösen Sie folgende Rechenaufgabe: *</td>
<td align="right" colspan="2"><?php echo $text; ?> =<input type='text' size="20" name='Code'></td>
</tr>
<tr>
<td align="right" colspan="2"><input name="Send" type="submit" value="Formular absenden"> <input type="button" value="Formular löschen" onClick="formLeeren(this.form);"></td>
</tr>
</tr>
</table>
</form>
<a><small>Copyright © 2013 <a href="#">GTM-Dienstleistungen UG </small></a>
<?php
}
###############################################################################
# FUNKTIONEN
###############################################################################
/**
* isValidEmail
* Prüft ob eine Emailadresse gültig ist mittels filter_var() und getmxrr()
* @param String $email
* @return boolean
*/
function isValidEmail($email){
//PHP-Filter anwenden
$email = filter_var($email, FILTER_VALIDATE_EMAIL);
if($email === false) return false;
//Und noch die Domain testen
list($name,$domain) = explode('@',$email);
return (getmxrr ($domain,$mxhosts));
}
/**
* Scheibt checked wenn der Wert im Array ist
* @param array<Variant> Array aller mögleichen Werte
* @param variant gesuchter Wert
*/
function echoCheckedFromArray($array, $value){
//Prüfen ob a) Der Array exisitert und b) obs ein Array ist
if(isset($array) && is_array($array)){
//Prüfen ob der Wert im Array vorhanden ist
if(in_array($value, $array)){
echo 'checked="checked"';
}
}
}
?>