echo $begrüßung;
» An der Art des "falsch" kann ein geübtes Auge schon recht genau erkennen, was da konkret schief laufen könnte.
Konkret geht es um das ß in "Straße". Da steht "Stra%C3%9Fe".
Das ist UTF-8- und URL-kodiert. Soweit so richtig.
vardump gibt in der Entsprechenden Zeile "Stra�e" aus!
Das ist etwas befremdlich, denn normal wäre ß, wenn du ein UTF-8-ß als ISO-8859-1 interpretiert ausgibst. Gib das was du da mit var_dump(...) ausgegeben hast auch noch mal mit echo bin2hex(...) aus.
» »»
<form action="edit_party.php" method="POST" accept-charset="UTF-8">
» Diese Angabe wird nicht in jedem Fall von jedem Browser korrekt behandelt.
Wie kann ich es denn besser machen?
Normalerweise reicht es, dass der Server einen Content-Type-HTTP-Header mit charset für die das Formular enthaltende Seite liefert. Ersatzweise ein Meta-Element so wie du es hat.
Du siehst, der Server sendet diese Angabe:
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Das was du da gepostet hast war der Request. Nachsehen musst du im Response und zwar eine Runde vorher. Die relevante Zeile beginnt mit Content-Type.
echo "$verabschiedung $name";