echo $begrüßung;
Der [PHP-]Interpreter, als Element des/der Server-Prozesse, bekommt nun aber ein ungüliges Format für eine PHP-Datei. Er kommt nicht mit der führenden BOM zurecht, da diese Bytes enthält, die er nicht interpretieren mag.
Das ist nicht richtig. Für PHP sind das drei normale Bytes außerhalb des PHP-Codes, die wie alles andere außerhalb von <?php ?> einfach durchgereicht werden.
Vielleicht tritt bei der Verarbeitung auf dem Server ein Fehler auf, der lokal nicht erschien. Weiterhin kann es sein, dass das PHP auf dem Server so konfiguriert ist, dass Fehlermeldungen nicht ausgegeben werden. phpinfo() sollte darüber Auskunft geben. Die Werte von error_reporting und display_errors sind dafür interessant. Ich vermute, dass das Script im ersten PHP-Code-Block nach der BOM stirbt, bevor es eine weitere Ausgabe vornehmen konnte.
Als Vorgehensweise schlage ich vor, die beteiligten Dateien als UTF-8 ohne BOM zu speichern. Weiterhin sollte die Fehlermeldungskonfiguration angesehen und gegebenenfalls zu Testzwecken geändert werden. Langfristig gesehen ist es sicherlich besser, sich mit dem Thema Error Handling and Logging zu befassen und einen Error-Handler zu implementieren, der den Administrator über aufgetretene Fehler informiert. Alternativ bietet sich an, log_errors und error_log zu konfigurieren und sich regelmäßig das Logfile anzusehen.
echo "$verabschiedung $name";