echo $begrüßung;
Ich habe in den einzelenen files immer <meta http-equiv="content-type" content="text/html;charset=utf-8" /> angegeben. Warum bliebt er im ISO? Was muss ich ändern?
Sende einen entsprechenden header mit.
Zur Erklärung für Kaiser: <meta http-equiv="content-type"... ist ein Ersatz für die HTTP-Headerzeile, die dem Client den Content-Type und die verwendete Zeichenkodierung mitteilt. Die Meta-Zeile (oder auch nur der Charset-Teil daraus) darf nur dann vom Client verwendet werden, wenn der Server die entsprechende Information im HTTP-Header nicht mitsendet. Da dein Server Content-Type und Charset im HTTP-Header mitsende, bleibt die Angabe im Meta-Element wirkungslos. Sie kommt erst dann zum Tragen, wenn die Webseite lokal gespeichert wurde, und man sich diese lokale Kopie im Browser anschaut. Bei einem Dateizugriff gibt es keinen HTTP-Header und die Meta-Angabe darf verwendet werden.
Beachte dabei aber, dass die header-Anweisung abgesehen von den PHP-Tags die *erste* Zeile deines PHP-Skriptes sein muss.
Das ist so nicht richtig. Vielmehr müssen alle HTTP-Header gesendet worden sein, bevor angefangen wird, Nutzdaten zu senden. Nutzdaten sind außerhalb der PHP-Bereiche (<?php...?>) notierte Zeichen, Ausgaben die mit echo u.ä. erzeugt werden oder Fehlermeldungen.
Header sendende Befehle, wie header(), setcookie() und session_start(), können selbstverständlich im Quelltext an jeder beliebigen Stelle, also auch kurz vor dessen Ende stehen, wenn man Sorge trägt, dass die Nutzdaten nicht vorher gesendet werden. Man kann das erreichen, indem man die Ausgabe in einer Variable zusammenstellt oder sich der Output Control Functions bedient.
echo "$verabschiedung $name";