Habe nach der Anleitung - so denke ich - alles richtig gemacht. Das Formular sieht genauso aus, wie ich es haben will. Es funktioniert aber nicht. Gar nicht!
Hier meine kontakt.php:
<?php
#########################################################################
# Dieses Script ist Freeware und kann verändert werden #
# solange dieser Copyrightvermerk nicht entfernt wird! #
# Es ist ein leicht veränderbarer Webmailer. #
# Support: mail to support => git-development.com #
# All rights by Global IT Development (Stefan Schwiedel) #
# Version 1.3.2 #
# Falls Sie Bugs entdecken schreiben Sie bitte ins Forum oder #
# senden Sie mir eine Mail mit Fehlerbeschreibung. #
# Anregungen, Kritiken, Wünsche bitte ins Forum unter: #
# http://www.git-development.com/global-it-community.htm #
# Danke! #
#########################################################################
######################################################################################################
# Beginn der Konfiguration #
######################################################################################################
# Hier können Sie die benötigten Felder eingeben. Bitte nutzen Sie die gleiche Syntax,
# da sonst das Script nicht funktioniert.
# Bsp. $fields = array("Name" => 1);
# Die jeweilige Zahl hinter dem Feldnamen schaltet die Prüfroutinen ein oder aus.
# Achtung! Der Inhalt des Feldes der Prüfroutine "2" wird automatisch als Antwortadresse im Header
# der Mail eingetragen. Eine Namensvorgabe für das E-Mailfeld besteht nicht.
# 0 für "keine Prüfung
# 1 für "Feld darf nicht leer sein"
# 2 für "Mailprüfung"
# 3 für "Postleitzahl"
# 4 für "Telefonnummer" (nur Zahlen sind erlaubt siehe $phone_min und $phone_max)
# 5 für "Website" Bitte vor Einsatz testen ob die gewünschten Domains zugelassen werden.
# Andernfalls melden Sie sich bitte im Forum.
# 6 Das Feld darf nur Buchstaben enthalten.
# 7 Das Feld darf nur Zahlen enthalten.
$fields = array("Vorname & Name des Kindes *" => 1,
"Geburtsdatum des Kindes *" => 1,
"Verein / Mannschaft / Position" => 0,
"Erziehungsberechtigte(r) *" => 1,
"Vollständige Anschrift *" => 1,
"Haben Sie E-Mail?" => 0,
"Telefon / Mobil *" => 0,
"Ihre Kto.Nr. und Bankleitzahl *" => 1,
"Ihre Bank *" => 1,
"Anmeldung (Ort & Zeitraum) *" => 1,
"Jacke & T-Shirt? (Aufpreis: 20 EUR)" => 1,
);
# Tragen Sie hier die Anzahl der Felder ein.
# Vergessen Sie nicht das Textfeld mitzuzählen falls Sie es aktivieren.
# Sollte die Zahl nicht stimmen wird das Formular nicht gesendet.
$k = "11";
# Tragen Sie hier die gewünschte Größe der Felder ein.
$inputsize = 50;
# Schalten Sie diese Funktion ein (1) oder aus (0)
$send_ip = "1"; // sendet die IP Adresse des Absenders
$f5 = "0"; // erlaubt ein neuladen der Seite wodurch die Daten nocheinmal gesendet werden.
// Schalten Sie diese Funktion auf "0", wenn sie häufig doppelte Mails erhalten.
# Hier können Sie die Mailprüfung konfigurieren
$str = "\"\\?*:/,;|<>"; // ungültige Zeichen in der Mail
$lengthm = 8; // Mindestlänge der email Adresse
# Hier können Sie die Postleitzahlprüfung konfigurieren
$plz_len = 5; // Postleitzahllänge (exakte Zeichenzahl)
$plz_min = 00000; // Anfang des Postleitzahlenbereiches
$plz_max = 99999; // Ende des Postleitzahlenbereiches
# Hier können Sie die Prüfroutine für die Telefonnummer einstellen.
$phone_max = 16; // maximale länge der Telefonnummer
$phone_min = 3; //mindestlänge der Telefonnummer
# Setzen Sie $textarea = 1 und es wird ein Textfeld eingefügt.
# $textarea = 0 um das Textfeld auszuschalten.
$textarea = 0;
# Konfiguration des Textfeldes
$laengen = 400; // Maximale Nachrichtenlänge in Zeichen
$textheadline = "Haben Sie noch Bemerkungen oder Fragen ?"; // Textüberschrift
$textlabel ="message"; // Textlabel
# $textheadline = "Bitte alle Felder ausfüllen"; // Textüberschrift
$rows = 2; // Anzahl der Reihen
$cols = 70; // Breite des Textfeldes
# Tragen Sie hier die Empfängeradresse und die Headerangaben ein.
$empfaenger = '*@domain.de';
$betreff = 'Anmeldung';
$from = '*@domain.de';
# Sollten fehler Auftreten, tragen Sie hier Ihre Adresse ein.
# z.B. name@ihredomain.de
$add = "*@domain.de";
# Definieren Sie den Browsertitel
$browsertitel = "Anmeldung";
# Definieren Sie die Hintergrundfarbe
$hintergrund = "#CCCCCC";
# Definieren Sie die Textfarbe
$textfarbe = "#000000";
# Definieren Sie die Fehlerfarbe
$fehlerfarbe = "#FF0000";
# Definieren Sie die Hintergundfarbe der Eingabefelder
$inputfarbe = "#ffffff";
# Definieren Sie die Ramenfarbe
$rahmenfarbe = "#CCCCCC";
# Definieren Sie die Rahmenart Bsp. none, dotted, dashed, solid, double, groove, ridge, inset, outset
$rahmenart = "dashed";
# Definieren Sie die Rahmenstärke
$rahmenpx = "1";
# Definieren Sie die Formulargröße (Breite)
$rahmenbreite = "800";
######################################################################################################
# Ende der Konfiguration #
######################################################################################################
$check = count($fields);
if ($textarea == 1) {
$check = $check + 1;}
if ($k != $check){
echo 'Der Kontrollwert wurde falsch angegeben. Bitte geben Sie für $k statt '.$k.' den Wert '.$check.' ein';
}
######################################################################################################
# Bitte ändern Sie hier nichts, es sei denn Sie wissen genau was Sie tun. #
############################################# check content ##########################################
$ip = $send_ip == "0" ? $ip="" : getenv('REMOTE_ADDR');
if (($textarea == "1") && isset($_POST['send']))
{
$i="1";
$messagel = strlen($_POST["send"]["$textlabel"]);
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$textlabel"] = stripslashes($_POST["send"]["$textlabel"]);
#$_POST["send"]["$textlabel"] = htmlspecialchars($_POST["send"]["$textlabel"]);
}
} else{$i="0";}
if (isset($messagel) && $messagel > $laengen)
{
$fmessage = "Ihre Nachricht darf Maximal ".$laengen." Zeichen haben.<br>Ihre Nachricht hat ".$messagel." Zeichen<br>";
$i--;
} else{ $fmessage = ""; }
$fempty = array();
if (isset($_POST['send']) && is_array($_POST["send"]))
{
foreach ($fields as $feld =>$check)
{
switch ($check)
{
case "0":
#do nothing / no check
$i++;
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
$_POST["send"]["$feld"] = htmlspecialchars($_POST["send"]["$feld"]);
break;
case "1":
#not empty
if(empty($_POST["send"]["$feld"]))
{
$fempty["$feld"] = "$feld darf nicht leer sein!<br>";
}
else
{
$i++;
$_POST["send"]["$feld"] = htmlspecialchars($_POST["send"]["$feld"]);
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
}
break;
case "2":
#check mail
if (strlen($_POST['send']["$feld"]) != strcspn($_POST['send']["$feld"],$str)OR
(substr_count($_POST['send']["$feld"], "@") < 1) OR
(substr_count($_POST['send']["$feld"], ".") < 1) OR
(strlen($_POST['send']["$feld"]) < $lengthm))
{
$fmail = "Die E-Mail ist ungültig!<br>";
}
else
{
$i++;
$fmail = "";
}
break;
case "3":
#check PLZ
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
if ( !is_numeric($_POST['send']["$feld"]) || ( strlen(strval($_POST['send']["$feld"])) != $plz_len ))
{
$fplz = "Die PLZ ist ungültig!<br>" ;
}
elseif ( ( $_POST['send']["$feld"] < $plz_min ) || ( $_POST['send']["$feld"] > $plz_max ) )
{ $fplz = "Die PLZ liegt nicht im erlaubten Bereich!<br>" ;
}
else
{
$i++;
$fplz="";
}
break;
case "4":
#check phonenumber
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
if ( !is_numeric($_POST['send']["$feld"]) || ( strlen(strval($_POST['send']["$feld"])) > $phone_max ) || ( strlen(strval($_POST['send']["$feld"])) < $phone_min ))
{
$fphone = "Die Telefonnummer ist ungültig!<br>" ;
}
else
{
$i++;
$fphone="";
}
break;
case "5":
#check website Hier muss geprüft werden ob die seite erreichbar ist
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
$search = '/^[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/i';
$else_search = '/^(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/i';
if (preg_match($search,$_POST['send']["$feld"]) || preg_match($else_search,$_POST['send']["$feld"]))
{
$fweb = "";
$i++;
}
else
{
$fweb = "Die Domain ist ungültig!<br>";
}
break;
case "6":
#check nur Buchstaben
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
$search = '/[A-Z]+$/i';
if (!preg_match($search,$_POST['send']["$feld"]))
{
$fempty["$feld"] = "$feld darf nur Buchstaben enthalten!<br>";
}
else
{
$fempty["$feld"] = "";
$i++;
}
break;
case "7":
#check nur Zahlen
if (get_magic_quotes_gpc() == "1")
{
$_POST["send"]["$feld"] = stripslashes($_POST["send"]["$feld"]);
}
if (!is_numeric($_POST['send']["$feld"]))
{
$fempty["$feld"] = "$feld darf nur Zahlen enthalten!<br>";
}
else
{
$i++;
$fempty["$feld"]="";
}
break;
}
}
}
############################################# END of check #########################################
######################################################################################################
# Bitte ändern Sie hier nichts, es sei denn Sie wissen genau was Sie tun. #
# Hier wird der Inhalt zusammengefasst und die email formatiert. #
######################################################################################################
if (strtoupper(substr(PHP_OS,0,3)=='WIN'))
{
$ret="\r\n";
}
elseif (strtoupper(substr(PHP_OS,0,3)=='MAC'))
{
$ret="\r";
}
else
{
$ret="\n";
}
################################## Formatierung des Headers #########################################
foreach ($fields as $field => $value)
{
if ($value == 2)
{
$reply_val = $field;
}
}
$reply = isset($_POST['send']["$reply_val"]) ? $_POST['send']["$reply_val"] : "";
$header .= 'From: Kontaktformular <'.$from.'>'.$ret;
$header .= 'Reply-To: '.$reply.$ret;
$header .= 'Return-Path: '.$reply.$ret;
$header .= "Message-ID: <System@".$_SERVER['SERVER_NAME'].">".$ret;
$header .= "X-Mailer: PHP v".phpversion().$ret;
$mime=md5(time());
$headers .= 'MIME-Version: 1.0'.$ret;
$headers .= "Content-Type: multipart/related; boundary=\"".$mime."\"".$ret;
#
#####################################################################################################
# Prüfen ob die Variablen alle übergeben wurden #
#####################################################################################################
if (isset($_POST['send']) && is_array($_POST["send"]) && $i==$k){
foreach ($_POST['send'] as $key => $value)
{
$content .= $key.": ".$value.$ret;
}
######################################################################################################
# Bitte ändern Sie hier nichts, es sei denn Sie wissen genau was Sie tun. #
# Hier wird der Inhalt gesendet #
######################################################################################################
if(empty($add))
{
$add = "";
if (@mail($empfaenger, $betreff, "Die IP Adresse des Absenders ist: ".$ip.$ret.$content, $header))
{
$status = "<h2>Danke für Ihre Anmeldung. Sie erhalten in den nächsten Tagen eine Bestätigung.</h2>";
unset($_POST['send']);
$i="0";
}
else
{
$status = "<h2>Fehler! Anmeldung konnte nicht gesendet werden</h2>";
}
} else
{
if (@mail($empfaenger, $betreff, "Die IP Adresse des Absenders ist: ".$ip.$ret.$content, $header, "-f $add"))
{
$status = "<h2>Danke für Ihre Anmeldung. Sie erhalten in den nächsten Tagen eine Bestätigung.</h2>";
unset($_POST['send']);
$i="0";
}
else
{
$status = "<h2>Fehler! Anmeldung konnte nicht gesendet werden</h2>";
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title><?php echo $browsertitel; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!--Anfang der Stylesheets!-->
<style type="text/css">
<!--
body {
font-family:Verdana,sans-serif;
font-size:12px;
color: <?php echo $textfarbe; ?>;
background-color:<?php echo $hintergrund; ?>;
text-align:center;
background-image: url();
background-repeat: no-repeat;
}
a:link, a:visited, a:active a:hover {
text-decoration:none;
font-weight:bold;
color:#000000;
font-size:10px;
}
h1 {
font-size:15px;
margin-top:30px;
}
h2 {
font-size:12px;
}
.formular {
margin:0px auto;
width:<?php echo $rahmenbreite."px"; ?>;
border:<?php echo $rahmenpx."px ".$rahmenart." ".$rahmenfarbe; ?>;
text-align:left;
}
.fehler {
color:<?php echo $fehlerfarbe; ?>;
text-align:left;
}
.rahmen {
margin-top:10px;
}
.abstand {
margin-left:80px;
}
.label {
float:left;
text-align:left;
width:25em;
line-height:25px;
}
input{
margin-top:3px;
background-color:<?php echo $inputfarbe;?>;
}
.nachricht {
clear:both;
text-align:center;
}
.copyright {
font-size:10px;
color:#000000;
position:relative;top:5px;
}
//-->
</style>
<!--Ende der Stylesheets!-->
</head>
<body>
<?php
######################################################################################################
# Hier beginnt die Ausgabe des Formulars #
######################################################################################################
echo "$ueberschrift".
"<form class=\"formular\" action=\"$PHP_SELF\" method=\"post\" target=\"_self\" accept-charset=\"ISO-8859-1\">\n".
"<div class=\"rahmen\">\n";
foreach ( $fields as $field => $check)
{
printf ('<div class="abstand">
<div class="label">
<label for="%s"> %s </label>
</div>
<div><input name="send[%s]" type="text" id="%s" size="%s" value="%s"></div>
</div>', $field, $field, $field, $field, $inputsize, $_POST['send']["$field"]);
}
if ($textarea == 1)
{
printf ('
<div class="nachricht"> <br>
<label for="%s">%s</label>
<br>
<textarea name="send[%s]" id="%s" rows="%s" cols="%s">%s</textarea>
' ,$textlabel ,$textheadline ,$textlabel ,$textlabel,$rows ,$cols ,$_POST['send']["$textlabel"]);
echo '</div>';
}
echo '
<hr/>
<div class="abstand">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="150">Sicherheitsabfrage:</td>
<td width="150"><img src="rechen-captcha.php"></td>
<td width="90"><input type="text" name="sicherheitscode" size="5"></td>
<td width="100"><input type=submit value=Anmelden></td>
</tr>
</table>
</div>';
//<div align="center"><br>Sicherheitscode:<img src="rechen.php"><input type="text" name="sicherheitscode" size="5"><input type=submit value=absenden></div>';
echo '
<div class="fehler">';
if (isset($_POST['send'])&& is_array($_POST['send']))
{
echo $fplz; echo $fmail; echo $fmessage; echo $fphone; echo $fweb;
foreach($fempty as $fehler)
{
echo $fehler;
}
}
echo "</div></div>";
echo '</div></form>';
echo '<h2 align="center>"'.$status.'</h2>';
if ($f5 == "0" && stristr($status, "<h2>Danke für Ihre Anmeldung. Sie erhalten in den nächsten Tagen eine Bestätigung.</h2>")){
# header("Location: $strReturnhtml");
}
# Formular ende ######################################################################################
?>
</body>
</html>
Vielen Dank im voraus. Ich habe schon viel dran ausprobiert. Na, ja. PHP ist halt nicht so wirklich mein Ding..... Trotzdem gebe ich nicht auf. Brauche Unterstützung.
