Moin Christian! Auch schon aufgewacht? Das Problem hatten wir doch schon neulich... hier die damals schon vorgestellte Lösung:
<?php
# jrubin3456.inc.php
function jrubin3456($intMaxAllowed, $strFields) {
# Übergeben Sie dieser Funktion als Int wieviele Formularfelder ein
# '@' enthalten dürfen sowie als String eine Komma-separierte
# Liste aller Rückgaben von Formularfeldern, die einzeilig sein sollen.
# Die Funktion liefert ein true zurück, wenn in den Feldern Zeilenumbrüche
# vorkommen oder die zulässige Anzahl der Felder mit einem '@' überschritten wird
# Beispiel eines Aufrufs:
#
/*
if (jrubin3456(2, 'name,email,firma,position')) {
header("HTTP/1.0 403 Forbidden");
die("Spam attempt denied");
}
*/
if ((!isset($strFields)) || (trim($strFields)=='')) {
die ("Error: in function jrubin3456: Es wurden keine Feldnamen übergeben");
}
$arFields=explode(',', $strFields);
if ($intMaxAllowed > count($arFields)) {
die ("Error: in function jrubin3456: Die Anzahl der erlaubten Felder mit @ ist größer als die Anzahl der Felder.");
}
$intFoundAet=0;
foreach ($arFields as $strField) {
$strField = trim ($strField);
if (isset($_POST[$strField])) {
if ((strpos($_POST[$strField],"\n")) || (strpos($_POST[$strField],"\r"))) {
return true;
}
if (strpos($_POST[$strField],'@')) {
$intFoundAet++;
}
}
if (isset($_GET[$strField])) {
if ((strpos($_GET[$strField],"\n")) || (strpos($_GET[$strField],"\r"))) {
return true;
}
if (strpos($_GET[$strField],'@')) {
$intFoundAet++;
}
}
if ($intFoundAet > $intMaxAllowed)
return true;
}
}
?>
<?php
function jrubin3456($intMaxAllowed, $strFields) {
# Übergeben Sie dieser Funktion als Int wieviele Formularfelder ein
# '@' enthalten dürfen sowie als String eine Komma-separierte
# Liste aller Rückgaben von Formularfeldern, die einzeilig sein sollen.
# Die Funktion liefert ein true zurück, wenn in den Feldern Zeilenumbrüche
# vorkommen oder die zulässige Anzahl der Felder mit einem '@' überschritten wird
# Beispiel eines Aufrufs:
#
/*
if (jrubin3456(2, 'name,email,firma,position')) {
header("HTTP/1.0 403 Forbidden");
die("Spam attempt denied");
}
*/
if ((!isset($strFields)) || (trim($strFields)=='')) {
die ("Error: in function jrubin3456: Es wurden keine Feldnamen übergeben");
}
$arFields=explode(',', $strFields);
if ($intMaxAllowed > count($arFields)) {
die ("Error: in function jrubin3456: Die Anzahl der erlaubten Felder mit @ ist größer als die Anzahl der Felder.");
}
$intFoundAet=0;
foreach ($arFields as $strField) {
$strField = trim ($strField);
if (isset($_POST[$strField])) {
if ((strpos($_POST[$strField],"\n")) || (strpos($_POST[$strField],"\r"))) {
return true;
}
if (strpos($_POST[$strField],'@')) {
$intFoundAet++;
}
}
if (isset($_GET[$strField])) {
if ((strpos($_GET[$strField],"\n")) || (strpos($_GET[$strField],"\r"))) {
return true;
}
if (strpos($_GET[$strField],'@')) {
$intFoundAet++;
}
}
if ($intFoundAet > $intMaxAllowed)
return true;
}
}
?>
<?php
# mailsenden.php
# in trauernden Andenken an jrubin3456, der mich einst genervt hat und dieses Muster mit
# wechselnden Adressen wiederholt...
include 'jrubin3456.inc.php';
if (jrubin3456(2, 'formelement_1,formelement_2,formelement_3,formelement_4,...,subject,senderadresse')) {
#header("HTTP/1.0 403 Forbidden");
#die("Spam attempt denied");
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://127.205.107.112");
header("Connection: close");
exit;
}
# Der Rest Deines Mailskriptes
?>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development