Hello,
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?
ohne Rücksicht auf weitere Fehler oder Sicherheigtslücken!
Ich vermut mal, dass
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
dieser Abschnitt Scheiße ist:
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
Wenn man schon mit fopen() und fread() arbeitet, muss man auch die Fehlerwerte nutzen, die ggf. zurückgeben werden, aber das nur am Rande!
Ander das mal tethalber so ab:
$Dateiinhalt = file_get_contents($_FILES['Anhang']['tmp_name']);
$Header .= chunk_split(base64_encode($Dateiinhalt),76,"\n");
Und sag bitte Bescheid, ob es nun geht.
Liebe Grüße aus dem Cyberspace
Tom vom Berg