echo $begrüßung;
$name = $files["name"] . "." . $files["endung"];
header("Content-Type: $endung");
Die Dateiendung ist kein richtiger Wert für den Content-Type. Der sieht üblicherweise beispielsweise so aus: image/jpeg, text/html. Jedoch sollte das nicht zu unbrauchbaren Daten führen, sondern nur zu einem Downloadangebot, weil der Content-Type dem Browser nicht bekannt ist.
Ansonsten sehe ich außer der nicht vorhandenen Fehlerbehandlung keine offensichtlichen Mängel.
Hast du mal in die Ausgabe reingeschaut, sprich: Quelltext-Ansicht oder mal im Editor geöffnet? Stehen vielleicht zu Anfang irgendwelche Fehlermeldungen drin?
echo "$verabschiedung $name";