alex: Kontaktformular mit Anhang

Beitrag lesen

Hallo,

benötige fachkundige Hilfe!

Ich habe hier ein Kontaktformular, mit dem es möglich ist neben der Nachricht einen Anhang zu versenden. Die Email wird mir auch ordnungsgemäß zugesendet.

Das Problem ist, dass statt der ausgewählten Datei in der Email im Anhang bloß "anlage" (ohne Daeiendung) steht.

Wo liegt der Fehler in diesem Skript?

<html>
<head>
<title>Kontaktformular inkl. Dateianhang mit PHP</title>
</head>
<body>
<?php

$Empfaenger = "meine@mailadresse.de";

if($_REQUEST['Send'])
{
    if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
    {
        echo"Bitte gehen Sie <a href="javascript:history.back();">zurück</a> und füllen Sie alle Felder aus!";
    }
    else
    {
        $Mailbetreff = "Kontakt: ";
        $Mailbetreff .= $_REQUEST['Betreff'];

$Trenner = md5(uniqid(time()));

$Header = "From: ".$_REQUEST['Email'];
        $Header .= "\n";
        $Header .= "MIME-Version: 1.0";
        $Header .= "\n";
        $Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
        $Header .= "\n\n";
        $Header .= "This is a multi-part message in MIME format";
        $Header .= "\n";
        $Header .= "--$Trenner";
        $Header .= "\n";
        $Header .= "Content-Type: text/plain";
        $Header .= "\n";
        $Header .= "Content-Transfer-Encoding: 8bit";
        $Header .= "\n\n";
        $Header .= "Sie haben folgende Nachricht erhalten: \n\n";

while(list($Formularfeld, $Wert) = each($_REQUEST))
        {
            if($Formularfeld != "Send" && $Formularfeld != "Anhang")
            {
                $Header .= $Formularfeld.": ".$Wert."\n";
            }
        }

$Header .= "\nDatum/Zeit: ";
        $Header .= date("d.m.Y H:i:s");
        $Header .= "\n";
        $Header .= "--$Trenner";
        $Header .= "\n";
        $Header .= "Content-Type: ";
        $Header .= $_FILES['Anhang']['type'];
        $Header .= "; name=";
        $Header .= $_FILES['Anhang']['name'];
        $Header .= "\n";
        $Header .= "Content-Transfer-Encoding: base64";
        $Header .= "\n";
        $Header .= "Content-Disposition: attachment; filename=";
        $Header .= $_FILES['Anhang']['name'];
        $Header .= "\n\n";
        $Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
        $Header .= chunk_split(base64_encode($Dateiinhalt));
        $Header .= "\n";
        $Header .= "--$Trenner--";

mail($Empfaenger, $Mailbetreff, "", $Header);
        echo"Vielen Dank für Ihre eMail!";
   }
}
else
{
?>
<table border="0" cellpadding="1" cellspacing="2">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
 <tr>
  <td>Name:</td>
  <td><input name="Name" size="20" type="text"></td>
 </tr>
 <tr>
  <td>eMail:</td>
  <td><input name="Email" size="20" type="text"></td>
 </tr>
 <tr>
  <td>Betreff:</td>
  <td><select name="Betreff" size="1"><option>Hilfe</option><option>Kritik</option><option>Werbung</option></select></td>
 </tr>
 <tr>
  <td>Nachricht:</td>
  <td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
 </tr>
 <tr>
  <td>Anhang:</td>
  <td><input name="Anhang" size="20" type="file"></td>
 </tr>
 <tr>
  <td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken">    <input name="Reset" type="reset" value="Löschen"></td>
 </tr>
</form>
</table>
<?php
}

?>
</body>
</html>

MfG
Alex