Hallo Tanja.
<?php
$server = $_REQUEST['server'];
$ip = $_REQUEST['ip'];
$name = $_REQUEST['name'];
$mail = $_REQUEST['mail'];
$betreff = $_REQUEST['beitrag'];
Alle diese Schlüssel existieren beim erstmaligen Aufruf noch garnicht, weshalb du sie nur übernehmen solltest, wenn sie [gesetzt](http://de2.php.net/manual/en/ref.exec.php) wurden.
> ~~~php
$name=trim($name);
> $mail=trim($mail);
> $betreff=trim($beitrag);
> $name=strip_tags($name);
> $mail=strip_tags($mail);
Warum überhaupt dieser Umweg? Du kannst direkt mit den Schlüsseln in $_REQUEST agieren. Es ist ein Array wie jeder andere auch, mit dem Unterschied dass er stets zur Verfügung steht.
$header="Content-Type: text/plain\r\n";
mail("info@topfblume.net", "Nachricht vom Formular - topfblume.net", $message, $header);
Das sind die relevanten Zeilen. Die E–Mail–Adresse, der Betreff als auch die zusätzlichen Header sind fest vorgegeben, man kann hier also nirgends zusätzliche Mailheader einschmuggeln.
> `<form action="[code lang=php]<?php $PHP_SELF; ?>`{:.language-html}" method="post">[/code]
Brauchst du wirklich noch [register_globals](http://de2.php.net/manual/de/security.globals.php)?
Ansonsten dürfte das Script sicher sein.
Einen schönen Montag noch.
Gruß, Mathias
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[[HTML Design Constraints: Logical Markup](http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/HTMLConstraints.html)]