Sieht toll aus - funktioniert aber nicht. Wer kann helfen?

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Sieht toll aus - funktioniert aber nicht. Wer kann helfen?

Beitragvon rovisman » 17.06.2007, 11:40

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.
rovisman
 
Beiträge: 2
Registriert: 17.06.2007, 11:34

Beitragvon Steef389 » 20.06.2007, 21:28

So, hab mir das ganze Skript mal durchgesehen und so umgeschrieben, dass es funktionieren sollte! Du musst nur noch in der orangen Zeile den roten Code durch den Code ersetzen, den du in der zahlen-captcha.php eingegeben hast!
Bitte um Feedback :!:


<?php
session_start();
#########################################################################
# 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! #
# Captcha-Check by Steef389 #
#########################################################################

######################################################################################################
# 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;

}
}
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if (isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']) {
$i2="0";
unset($_SESSION['rechen_captcha_spam']);
} else {
$i2="1";
}
}
############################################# 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 && $i2=="0"){
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;
}
if ($i2=="1") {
echo "Der Sicherheitscode war nicht korrekt!";
}
}

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>
Steef389
 
Beiträge: 57
Registriert: 20.06.2007, 20:31

Wow ! Geht einwandfrei.

Beitragvon rovisman » 21.06.2007, 00:05

Mehrfach ausprobiert. Es funktioniert. Toll. Perfekt. Danke !
rovisman
 
Beiträge: 2
Registriert: 17.06.2007, 11:34

Beitragvon Steef389 » 21.06.2007, 07:27

Gern geschehen 8)
Steef389
 
Beiträge: 57
Registriert: 20.06.2007, 20:31


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron