Guten Tag,
Hab bei mir auf meiner Seite ein Kontaktformular eingebaut, und bräuchte dazu ein bisschen Hilfestellung!
Hier mein Kontaktformular:
$name = '';
if (isset($_POST['name'])) $name = $_POST['name'];
$email = '';
if (isset($_POST['email'])) $email = $_POST['email'];
$inhalt = '';
if (isset($_POST['inhalt'])) $inhalt = $_POST['inhalt'];
if ($name == '' or $email == '' or $inhalt == '' )
{
echo '<article>';
echo '<h1>Kontaktformular</h1>';
echo '<p>Wir würden uns über ein Feedback freuen,was sie gut finden und was eher nicht! <br>
Fragen zur Homepage, zur meiner Person werde ich soweit ich kann beantworten. <br>Wir freuen uns schon
auf ihre Nachricht.</p>';
echo '<form action="';
echo $_SERVER['SCRIPT_NAME'];
echo '" method="post">';
echo '<fieldset>';
echo '<p>Vor - Nachname: <br>';
echo '<input type="text" name="name" value="';
echo tuersteher( $name );
echo '" size="40" maxlength="50" /></p>';
if (isset($_POST['absenden'] ))
{
if ( $name == '' )
{
echo '<p>Bitte füllen sie das Feld Vor - Nachname aus!</p>';
}
}
echo '<p>E-Mail: <br>';
echo '<input type="text" name="email" value="';
echo tuersteher ( $email );
echo '" size="40" maxlength="50" /></p>';
if (isset($_POST['absenden']))
{
if (is_mail ( $email ) == false or $email == '' )
{
echo "<p>Bitte geben sie eine richtige E-Mail addresse an!</p>";
$email = '';
}
}
echo '<p>Ihr Anliegen: <br>';
echo '<textarea name="inhalt" rows="10" cols="50">';
echo tuersteher( $inhalt );
echo '</textarea></p>';
if (isset($_POST['absenden'] ))
{
if ( $inhalt == '' )
{
echo '<p>Bitte füllen sie das Feld Anliegen aus!</p>';
}
}
echo '<p><input type="submit" name="absenden" value="absenden" /></p>';
echo '<br>';
echo '</fieldset>';
echo '</form>';
}
else
{
$header = 'From: webmaster@mannchristian.de' . "\r\n" .
'Reply-To: webmaster@mannchristian.de' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$empfaenger = "webmaster@mannchristian.de";
$betreff = "Anfrage zur Webseite: ";
$nachricht = tuersteher ( $inhalt );
$from = tuersteher( $email );
mail ( $empfaenger, $betreff, $nachricht, $from );
echo "<h1>Vielen Dank!</h1>";
echo "<p>...vielen Dank für ihre Nachricht</p>";
echo "<p>Ihre Nachricht würde erfolgreich verschickt.</p>";
}
echo '</article>';
Alles anzeigen
Und habe hier von Herrn Pratzner das bei den Funktionen eingefügt:
function tuersteher( $zum_testen )
{
if ( preg_match("/(to:|cc:|bcc:|from:|subject:|reply-to:|content-type:|MIME-Version:|multipart/mixed|Content-Transfer-Encoding:)/ims", $zum_testen))
{
echo "<p>Schauen Sie mal bei www.fang-den-hacker.de vorbei!</p>";
// es wird also alles abgebrochen, wenn Gefahr in Verzug ist
exit;
}
if (preg_match("/%0A|\\r|%0D|\\n|%00|\\0|%09|\\t|%01|%02|%03|%04|%05|%06|%07|%08|%09|%0B|%0C|%0E|%0F|%10|%11|%12|%13/i", $zum_testen))
{
echo "<p>Schauen Sie mal bei www.fang-den-hacker.de vorbei!</p>";
// es wird also alles abgebrochen, wenn Gefahr in Verzug ist
exit;
}
}
Alles anzeigen
Aber irgendwie wenn ich beim Inhalt bein Formular to: eingebe kommt immer die Nachricht erfolgreich abgeschickt wird.
Des stimmt auch, weil ich es ja auch im Code so habe, aber normalerweise wenn in der Funktion schadstoffe reinkommt dann müsste doch
nur der eine Satz in der Funktion kommen und nicht alles.
Die E-mail wird abgeschickt, aber ganz leer mehr nicht, auch wenn ich cc, to machen. Es kommt zwar eine Leere Mail an, aber ausgeführt wird
to oder cc nicht.
Was könnte das sein?
Und ist das Kontaktformular sicher, oder wie kann man es noch verbessern?