Stephan: Formular wird nicht gesendet

Hi,
ich habe mir ein forumlar zusammen gebastelt und in seiner grundform, ohne die $_post kann es versendet werden.
ich habe das ganze dann ein wenig verändert, damit die user selbst die angeben ausfüllen können, was ja schließlich der sinn eines formulars ist. nur leider wird es jetzt nicht mehr versendet!!

Hier das Formular an sich:
Formular.html:

<html>
<head>
<!---Metas müssen noch eingefügt werden-->
<body bgcolor="#000000" text="#666666">

<form action="verarbeitung2.php" method="post">
<table border="0" cellpadding="0" cellspacing="0">

<!---Abfrage der Absender EMail Adresse-->
<tr>
    <td valign="top"><span class="normal"><b><u>Deine E-Mail Adresse:</u></b></span></td>
</tr>
<tr>
    <td valign="top"><input class="normalblack" style="width: 461px;" size="42" type="text" name="absender" value=""><br></td>
</tr>

<!---Abfrage des Betreffs-->
<tr>
    <td valign="top"><span class="normal"><b>Betreff:</b></span></td>
</tr>
<tr>
    <td valign="top"><input class="normalblack" style="width: 461px;" size="42" type="text" name="subject" value=""><br></td>
</tr>

<!---Abfrage des Texts-->
<tr>
    <td valign="top"><span class="normal"><b>Text:</b></span></td>
</tr>
<tr>
    <td valign="top"><input class="normalblack" style="width:461px;" size="42" type="text" name="message" value=""><br></td>
</tr>

<!--Absenden-->
<tr>
<td>
<input type="submit" />
</td>
</tr>

</table>

</form>
</body>
</html>

und dann die verarbeitung2.php (die anscheinend die probleme macht):

<?PHP
/* Empfänger */
$empfaenger = array("Tobias ReisnerTobias.Reisner@web.de");

/* Empfänger CC */
$empfaengerCC = array("Stephan Plietschstephan.plietsch@plietsch-gmbh.de");

/* Empfänger BCC */
$empfaengerBCC = array("Tobias ReisnerTobias.Reisner@web.de");

/* Absender */
$absender = $_POST['absender'];

/* Rueckantwort */
$reply = "";

/* Betreff */
$subject = $_POST['subject'];

/* Nachricht */
$message = $_POST['message'];

/* Baut Header der MAil zusammen */
$headers .= "From:" . $absender . "\n";
$headers .= "Reply-To:" . $reply . "\n";
$headers .= "X-Mailer: PHP/" . phpversion(). "\n";
$headers .= "X-Sender-IP: $REMOTE_ADDR\n";
$headers .= "Content-type: text/html\n";

// Extrahiere Emailadressen
$empfaengerString = implode(",",$empfaenger);
$empfaengerCCString = implode(",",$empfaengerCC);
$empfaengerBCCString = implode(",",$empfaengerBCC);

$headers .= "Cc: " . $empfaengerCCString . "\n";
$headers .= "Bcc: " . $empfaengerBCCString . "\n";

/* Verschicken der Mail */
mail($empfaengerString, $subject, $message, $headers);

/* Pobe ob korrekt eingelesen*/
echo $_POST['absender'];
echo $_POST['subject'];
echo $_POST['message'];

echo $absender;
echo $subject;
echo $message;
?>

ich hoffe dass mir jemand helfen kann!!

  1. Hi!

    nur leider wird es jetzt nicht mehr versendet!!

    Woran erkennst du das?
    Wenn es nicht versendet werden würde, dann bräuchtest du auch keinen PHP-Code zu posten.
    Daran kann es ja nicht liegen. Wird das Formular nicht versendet, dann wird auch nichts an dein PHP-File geschickt.

    Teste doch, ob das Formular verschickt wurde:
    if ( isset( $_POST ) )
    oder
    if ( $_SERVER['REQUEST_METHOD'] == 'POST' )

    Was sollen denn diese Arrays?

    $empfaenger = array("Tobias ReisnerTobias.Reisner@web.de");
    $empfaengerString = implode(",",$empfaenger);

    Und was soll das implode()? Da kann doch nichts imploded werden.
    Scheinbar war das im Originalscript sinnvoll. Nachdem du das auf dich als einzigen Empfänger geändert hast, ist es sinnlos.
    Arbeite hier mit Strings bzw. einfachen Variablen.
    Gleiches gilt auch für das CC-Feld.
    Und das BCC-Feld ist ebenfalls sinnlos. Wenn die Mail ohnehin an die geht, dann muß sie doch nicht nochmal per BCC an dich (gleiche Adresse) gehen.

    /* Baut Header der MAil zusammen */
    $headers .= "From:" . $absender . "\n";
    $headers .= "Reply-To:" . $reply . "\n";
    $headers .= "X-Mailer: PHP/" . phpversion(). "\n";
    $headers .= "X-Sender-IP: $REMOTE_ADDR\n";
    $headers .= "Content-type: text/html\n";

    Header müssen nach dem SMTP-RFC mit \r\n abgetrennt werden und nicht mit einem einfachen \n.

    $absender = $_POST['absender'];

    Warum setzt du diese zusätzliche Variable ein? Das ist nicht notwendig?

    Statt

    $headers .= "Content-type: text/html\n";

    solltest du besser

    $header  = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    einsetzen.
    Das charset mußt du natürlich eventuell anpassen. Ich weiß ja nicht, welches bei dir zum Einsatz kommt.
    Wenn du aber willst, daß alle Zeichen korrekt angezeigt werden, dann solltest du die Charset-Angabe nicht vergessen.

    Du du außerdem eine HTML-Mail verschickst, solltest du die Zeilenumbrüche aus dem Formular (\r\n) in HTML-Zeilenumbrüche (<br>) umwandeln.
    PHP bietet dir dazu nl2br().

    Schöner Gruß,
    rob