Focker: PHP: Mailversand mit Attachment

Beitrag lesen

Hallo,

habe mir da ein wunderbares Skript im Internet geholt..

naja, wunderbar dahingeschlampt, mal gar keine Anführungszeichen, mal zu viele Anführungszeichen, keine Fehlerprüfung, ungesicherte Übernahme von externen Daten (da freuen sich die Spammer) …

im Formular kann er ein Bild "uploaden" und mitsenden... jedoch erhalte ich im Attachment, zwar den richtigen bildnamen, aber irgendwie: 265BYTE!!!

Ohne jetzt in die PHP-Anleitung geschaut zu haben, dünket mich:

$bild    = $_POST['bild_anhang'];

$bildname=$HTTP_POST_FILES['bild_anhang']['name'];

if($bild != '')
{
$dateizeiger = fopen("$bild", "rb");

1. Dateien werden von PHP in $_FILES übermittelt, nicht (mehr) in $HTTP_POST_FILES.

2. Hochgeladene Dateien werden von PHP unter einem zufällig erzeugten Namen auf dem Server gespeichert. Du benutzt stattdessen für den Zugriff auf diese temporäre Datei ein Datum aus dem Formular als Dateiname, vermutlich jenes aus <input type="file" name="bildanhang">.
Ich weiß nicht, wie bzw. ob PHP solche <input>-Felder auch in $_POST ablegt, normalerweise landen sie wie schon unter 1. geschrieben in $_FILES, aber die Methode ist zumindest überaus unorthodox und als solche verdächtig.

Informiere dich in der PHP-Anleitung, wie man über ein Formular hochgeladene Dateien im Skript weiterverarbeitet, es gibt extra eine Seite dafür.